我有一个如下的数组,
from numpy import *
a=array([1,2,3,4,5,6,7,8,9])
我希望获得如下结果
[[1,4,7],[2,5,8],[3,6,9]]
因为我有一个大阵容。所以我需要一种有效的方法来做到这一点。 最好将其重新整形。
答案 0 :(得分:5)
正如@ atomh33ls所提出的,你可以使用传递order='F'
的重塑,并且“如果可能的话”返回的数组将只是原始视图的视图,而不会复制数据,例如:
a=array([1,2,3,4,5,6,7,8,9])
b = a.reshape(3,3, order='F')
a[0] = 11
print b
#array([[ 1, 4, 7],
# [ 2, 5, 8],
# [ 3, 6, 9]])
答案 1 :(得分:4)
您可以使用reshape并将订单参数更改为FORTRAN(列主要)顺序:
a.reshape((3,3),order='F')