<分区>
我有一个数组:[1, 2, 3, 4, 5, 6]
。我想使用 numpy.reshape()
函数,这样我就可以得到这个数组:
[[1, 4],
[2, 5],
[3, 6]
]
我不知道该怎么做。我一直以这个结束,这不是我想要的:
[[1, 2],
[3, 4],
[5, 6]
]
<分区>
我有一个数组:[1, 2, 3, 4, 5, 6]
。我想使用 numpy.reshape()
函数,这样我就可以得到这个数组:
[[1, 4],
[2, 5],
[3, 6]
]
我不知道该怎么做。我一直以这个结束,这不是我想要的:
[[1, 2],
[3, 4],
[5, 6]
]
最佳答案
它们做同样的事情:
In [57]: np.reshape([1,2,3,4,5,6], (3,2), order='F')
Out[57]:
array([[1, 4],
[2, 5],
[3, 6]])
In [58]: np.reshape([1,2,3,4,5,6], (2,3)).T
Out[58]:
array([[1, 4],
[2, 5],
[3, 6]])
通常在 Python/numpy 中跨行“读取”值。这是调用行优先或“C”顺序。向下读是 FORTRAN 的“F”,在具有 Fortran 根的 MATLAB 中很常见。
如果您采用“F”顺序,制作一个新副本并将其串出,您将得到不同的顺序:
In [59]: np.reshape([1,2,3,4,5,6], (3,2), order='F').copy().ravel()
Out[59]: array([1, 4, 2, 5, 3, 6])
关于python - NumPy 使用 reshape 函数 reshape 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60939903/