python的zip(*)的numpy等价物是什么?



我认为(希望)这个问题与什么是";zip()"在Python中';s numpy?,尽管这可能只是我的无知。

假设我有以下内容:

[[1,2],[3,[5,[[7,8],[9,[11,12]]]

我想把它变成

[[1,2],[7,[[3,[9,10]],[[5,[11,12]]]

在python中我可以做:

>>> foo
[[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]]
>>> zip(*foo)
[([1, 2], [7, 8]), ([3, 4], [9, 10]), ([5, 6], [11, 12])]

但是,如何使用numpy数组(不使用zip(*))来实现这一点呢?

您真的需要返回元组吗?还是要重塑数组?

>>> a
array([[[ 1,  2],
        [ 3,  4],
        [ 5,  6]],
       [[ 7,  8],
        [ 9, 10],
        [11, 12]]])
>>> a.swapaxes(0,1)
array([[[ 1,  2],
        [ 7,  8]],
       [[ 3,  4],
        [ 9, 10]],
       [[ 5,  6],
        [11, 12]]])

最新更新