Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy以特定顺序重塑数组_Python_Arrays_Numpy_Reshape - Fatal编程技术网

Python Numpy以特定顺序重塑数组

Python Numpy以特定顺序重塑数组,python,arrays,numpy,reshape,Python,Arrays,Numpy,Reshape,假设我有一个数组x: x = array([1, 2, 3, 4, 5, 6, 7, 8]) x.shape = (8,1) 我想把它改造成 array([[1, 3, 5, 7], [2, 4, 6, 8]]) 这是x上的重塑(2,4),但采用的是直截了当的方式: y = x.reshape(2,4) y变成 array([[1, 2, 3, 4], [5, 6, 7, 8]]) 这不是我想要的。是否有一种方法可以以这种特定的方式变换数组?是的,您可以执行

假设我有一个数组x:

x = array([1, 2, 3, 4, 5, 6, 7, 8])
x.shape = (8,1)
我想把它改造成

array([[1, 3, 5, 7], 
       [2, 4, 6, 8]])
这是x上的重塑(2,4),但采用的是直截了当的方式:

y = x.reshape(2,4)
y变成

array([[1, 2, 3, 4],
       [5, 6, 7, 8]])
这不是我想要的。是否有一种方法可以以这种特定的方式变换数组?

是的,您可以执行以下操作:

y = np.array([x[0::2], x[1::2]])
是的,您可以:

y = np.array([x[0::2], x[1::2]])

最简单的方法是在
重塑
函数中指定
顺序
参数


您需要Fortran命令。

旁注:默认情况下,Matlab使用Fortran顺序,但在python中需要指定该顺序


使用以下命令:

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x.reshape(2,4, order='F')

print(y)
#array([[1, 3, 5, 7],
#       [2, 4, 6, 8]])

最简单的方法是在
重塑
函数中指定
顺序
参数


您需要Fortran命令。

旁注:默认情况下,Matlab使用Fortran顺序,但在python中需要指定该顺序


使用以下命令:

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = x.reshape(2,4, order='F')

print(y)
#array([[1, 3, 5, 7],
#       [2, 4, 6, 8]])

另一个选项是使用选项
order='F'
来重塑调用

res = numpy.reshape(my_array, (2,4), order='F')

另一个选项是使用选项
order='F'
来重塑通话,如

res = numpy.reshape(my_array, (2,4), order='F')

转置!!太棒了。tksTranspose!!TksIsome这很有趣,因为我试图复制我在Matlab中得到的一些结果,但在Python中重塑时却无法得到相同的结果。花了很长时间,我才意识到订购是不同的!这很有趣,因为我试图复制我在Matlab中得到的一些结果,而在Python中重塑时却无法得到相同的结果。花了很长时间,我才意识到订购是不同的!