Memory 转置数组并实际重新排序内存

Memory 转置数组并实际重新排序内存,memory,numpy,transpose,Memory,Numpy,Transpose,我有一个三维NumPy阵列,例如 a = np.random.random((2,3,5)) 我想转换最后两个轴,即 b = a.transpose(0,2,1) 然而,我不想看到一个步履蹒跚的景象!我想实际复制数组并在内存中对其重新排序。实现这一点的最佳方法是什么?默认情况下,copy()方法将重新排序为C-连续顺序: b = a.transpose(0,2,1).copy() 在引擎盖下,b的步幅不同于a 更喜欢使用,它将在需要时复制内存。而copy将始终复制内存。谢谢。在您发布您的解

我有一个三维NumPy阵列,例如

a = np.random.random((2,3,5))
我想转换最后两个轴,即

b = a.transpose(0,2,1)
然而,我不想看到一个步履蹒跚的景象!我想实际复制数组并在内存中对其重新排序。实现这一点的最佳方法是什么?

默认情况下,
copy()
方法将重新排序为C-连续顺序:

b = a.transpose(0,2,1).copy()

在引擎盖下,b的步幅不同于a

更喜欢使用,它将在需要时复制内存。而
copy
将始终复制内存。

谢谢。在您发布您的解决方案之前,我刚刚找到的解决方案是
b=np.zero((2,5,3));b[:]=a.转置(0,2,1)
,但是你的要干净得多。