2013-07-19 4 views
8

Penso (spero) che questa domanda differisca sostanzialmente da What is the equivalent of "zip()" in Python's numpy?, anche se potrebbe essere solo la mia ignoranza.Qual è l'equivalente numpy di python's zip (*)?

Diciamo che ho il seguente:

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

e voglio trasformarlo in

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

in python che posso fare:

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

Ma come posso fare questo con array numpy (senza usare zip (*))?

risposta

6

In realtà è necessario restituire le tuple o si desidera rimodellare l'array?

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

Grazie! Esattamente quello che stavo cercando. – rhombidodecahedron

Problemi correlati