4
一個numpy.array我有一個像跟隨陣列,重塑Fortran中連續的順序
from numpy import *
a=array([1,2,3,4,5,6,7,8,9])
我希望得到像下面
[[1,4,7],[2,5,8],[3,6,9]]
的結果,因爲我有一個大陣。所以我需要一個有效的方法來做到這一點。 最好在原地重塑它。
一個numpy.array我有一個像跟隨陣列,重塑Fortran中連續的順序
from numpy import *
a=array([1,2,3,4,5,6,7,8,9])
我希望得到像下面
[[1,4,7],[2,5,8],[3,6,9]]
的結果,因爲我有一個大陣。所以我需要一個有效的方法來做到這一點。 最好在原地重塑它。
所建議的@ 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]])
您可以使用reshape和訂單參數更改爲FORTRAN(列爲主)訂單:
a.reshape((3,3),order='F')
如果使用fortran-order,要知道幾乎所有對fortran-order中的數組做的操作都會返回一個結果在C順序(也許第一次甚至反式形式爲C順序之前做它的東西),但它是很有趣的知道你可以/想加快它 – usethedeathstar