numpy中有哪个函数相当于Python的zip(*)函数?

11

我认为(希望)这个问题与Python的numpy中“zip()”的等效方法是有本质区别的,尽管这可能只是我的无知。

假设我有以下内容:

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

我想将其转换为:

[[[ 1,  2],
  [ 7,  8]],
 [[ 3,  4],
  [ 9, 10]],
 [[ 5,  6],
  [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])]

但是我如何在不使用zip(*)的情况下使用numpy数组进行操作呢?

1个回答

8

您是否真的需要返回元组,还是想要重新塑造数组?

>>> 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]]])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接