我有一个3-D NumPy数组,例如
a = np.random.random((2,3,5))
我想转置最后两个轴,即
b = a.transpose(0,2,1)
然而,我不希望看到一个蹒跚的步伐!我想实际复制数组并将其重新排序 in memory 。实现这一目标的最佳方法是什么?
答案 0 :(得分:15)
默认情况下,copy()
方法将重新排序为C-contiguous顺序:
b = a.transpose(0,2,1).copy()
答案 1 :(得分:0)
在引擎盖下,b的步幅与a的步幅不同。
更喜欢使用ascontiguousarray,它将在需要时复制内存。而copy
将始终复制内存。