Python 我可以吗;轮换;在一次裸体手术中切片?

Python 我可以吗;轮换;在一次裸体手术中切片?,python,arrays,numpy,Python,Arrays,Numpy,我有这样的数据: [[[1, 2, 3] [4, 5, 6]] [[7, 8, 9] [0, 1, 2]]] 我需要把它变成这个“形状”: 到目前为止,我最好的方法是: for i in range(2): pairs = tuple( array[i, :, j] for j in range(3) # ---axis-2-length--- ) print(pairs) 制作: ([1, 4], [2, 5], [3, 6]) ([7,

我有这样的数据:

[[[1, 2, 3]
  [4, 5, 6]]
 [[7, 8, 9]
  [0, 1, 2]]]
我需要把它变成这个“形状”:

到目前为止,我最好的方法是:

for i in range(2):
    pairs = tuple(
        array[i, :, j] for j in range(3)  # ---axis-2-length---
    )
    print(pairs)
制作:

([1, 4], [2, 5], [3, 6])
([7, 0], [8, 1], [9, 2])
虽然这项工作已经完成,但这需要大量的Python解释,尤其是随着这些数据集的增长。所以我想知道我是否可以用花哨的索引或换位或其他方法来完成这件事我的numpy fu还不足以想象我自己

有人知道如何用numpy更优雅地完成这件事吗

与的换位将在这里起作用

>>> x.transpose(0, 2, 1)
array([[[1, 4],
        [2, 5],
        [3, 6]],

       [[7, 0],
        [8, 1],
        [9, 2]]])
在这里,与的换位将起作用

>>> x.transpose(0, 2, 1)
array([[[1, 4],
        [2, 5],
        [3, 6]],

       [[7, 0],
        [8, 1],
        [9, 2]]])

从(2,3,4)形状数组开始。到(2,4,3)的转换应该更明显。从(2,3,4)形状数组开始。到(2,4,3)的转化应该更明显。甜心老兄!你的女巫真的很厉害:)@scanny等了好几年才听到这个。顺便说一下,如果这解决了你的问题,请考虑标记答案接受。谢谢是的,当然,我只是让答案老化一天,看看是否有人想加入。甜心,老兄!你的女巫真的很厉害:)@scanny等了好几年才听到这个。顺便说一下,如果这解决了你的问题,请考虑标记答案接受。谢谢是的,当然,我只是让答案老化一天,看看是否有人想加入。