Python:ndarray.flatten('F')有反转吗?

chi*_*nga 15 python arrays numpy

例如:

from numpy import *
x = array([[1,2], [3, 4], [5, 6]])
print x.flatten('F')
>>>[1 3 5 2 4 6]
Run Code Online (Sandbox Code Playgroud)

有可能[[1,2], [3, 4], [5, 6]]来自[1 3 5 2 4 6]吗?

sen*_*rle 16

>>> a = numpy.array((1, 3, 5, 2 ,4, 6))
>>> a.reshape(2, -1).T
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> 
Run Code Online (Sandbox Code Playgroud)


cri*_*aig 7

这似乎更直接一点.只需将原始形状重新塑造成重塑形状即可.

import numpy as np
np.array([[1,2], [3, 4], [5, 6]]).flatten().reshape((3, 2))
Run Code Online (Sandbox Code Playgroud)
array([[1, 2],
       [3, 4],
       [5, 6]])
Run Code Online (Sandbox Code Playgroud)

对于您的Fortran订购,请为重塑订单传递'F':

import numpy as np
np.array([[1,2], [3, 4], [5, 6]]).flatten('F').reshape((3, 2), order='F')
Run Code Online (Sandbox Code Playgroud)
array([[1, 2],
       [3, 4],
       [5, 6]])
Run Code Online (Sandbox Code Playgroud)