Python 一种有效的numpy阵列子矩阵转置方法

Python 一种有效的numpy阵列子矩阵转置方法,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,我有一个非常大的矩阵数组,它的结构如下: np.array([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], ]) 我的预期产出是 np.array([ [[1, 3], [2, 4]], [[5, 7], [6, 8]], ]) 我知道使用列表理解

我有一个非常大的矩阵数组,它的结构如下:

np.array([
           [[1, 2],
            [3, 4]],
           [[5, 6],
            [7, 8]],
         ])
我的预期产出是

np.array([
           [[1, 3],
            [2, 4]],
           [[5, 7],
            [6, 8]],
         ])
我知道使用列表理解或for循环的方法,然后再次创建numpy数组,但是涉及从列表创建numpy的方法对于我的数据来说太慢了。矢量化似乎只对数字起作用

当我使用普通的python列表或其他语言时,我可以将转置函数映射到列表中,但在numpy中似乎没有类似的函数


如何才能有效地执行此操作?

使用
swapaxes
arr.swapaxes(1,2)
arr.transpose(0,2,1)
?是的,只需使用transpose()-方法谢谢您的建议。检查此方法是否回答了您的问题: