2013-07-19 16 views
8

Bence bu soru, benim cehaletim olsa da, bu sorunun büyük ölçüde What is the equivalent of "zip()" in Python's numpy?'dan farklı olduğunu düşünüyorum.Python'un zip (*) 'nin numpy karşılığı nedir?

en alttaki ı var diyelim:

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

ve ben yapabileceğim python'da

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

çevirmek istiyorum:

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

Ama nasıl yapabilirim bu numpy dizileri ile (zip (*) kullanmadan)?

cevap

6

aslında dizilerini dönmek gerekiyor mu yoksa dizi yeniden şekillendirmek istersiniz?

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

teşekkür ederiz! Tam olarak aradığım şey. – rhombidodecahedron