2013-07-19 74 views
8

我认为(希望)这个问题与What is the equivalent of "zip()" in Python's numpy?大不相同,尽管这可能只是我的无知。Python的zip(*)的numpy相当于什么?

比方说,我有以下几点:

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

可是我该怎么办这与numpy数组(不使用zip(*))?

回答

6

你真的需要返回元组吗?还是你想重新整形数组?

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

谢谢!正是我在找什么。 – rhombidodecahedron

相关问题