You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NumPy中将每n行数据转置为列

NumPy实现一维数组按固定长度转列的方案

你可以直接通过reshape配合维度交换实现需求,全程为视图操作,无额外数据拷贝,性能远优于循环实现。

实现代码

假设你的原始一维数组为raw_arr:

import numpy as np

# 构造示例数组,和你提到的shape一致
raw_arr = np.arange(1000000)

# 转换操作
target_arr = raw_arr.reshape(1000, 1000).T

如果你习惯列优先的内存排布,也可以直接用order参数省去转置步骤,结果完全一致:

target_arr = raw_arr.reshape(1000, 1000, order='F')

原理解释

  • 你之前直接用np.transpose()无效,是因为一维数组的转置结果还是自身,必须先把一维数组重塑为二维结构后再做维度交换
  • reshape(1000, 1000)会默认按行优先顺序把长度为1000000的一维数组拆分为1000行、每行1000个元素的二维数组
  • 后续的.T是np.transpose()的简写,会把二维数组的行和列互换,原来拆分得到的每一行就变成了最终数组的每一列,刚好得到你要的shape为(1000,1000)的结果

内容的提问来源于stack exchange,提问作者WindBreeze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:36:03