2017-02-10 2 views
-1

Ich habe einen Patch data, die ihre Form ist (10,10,10). Ich benutze die Transponierung Funktion in Python alsWas ist die Bedeutung von transponieren (3, 0, 1, 2) in Python

data.transpose(3, 0, 1, 2)

, was es von 3, 0, 1, 2 bedeutet. Weil ich den Fehler als

ValueError: axes don't match array

bekam Wie konnte ich das Problem beheben. Ich verwende Python 2.7

Antwort

1

Von der Python-Dokumentation auf np.transpose, das zweite Argument der np.transpose Funktion ist axes, die eine Liste von ints, optional durch Standard und Die Abmessungen umkehren, andernfalls die Achsen entsprechend den angegebenen Werten permutieren.

Beispiel:

>>> x = np.arange(9).reshape((3,3)) 
>>> x 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 

>>> np.transpose(x, (0,1)) 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 

>>> np.transpose(x, (1,0)) 
array([[0, 3, 6], 
     [1, 4, 7], 
     [2, 5, 8]]) 
+0

Danke, Also, wenn meine Daten (3,3,3,2), was data.transpose (3, 0, 1, 2) bedeutet? – user8264

1

Werfen Sie einen Blick auf numpy.transpose

Verwendung transponieren (a, argsort (Achsen)), um die Umsetzung von Tensoren zu invertieren, wenn die Achsen Schlüsselwort-Argument verwenden.

Das Transponieren eines 1-D-Arrays gibt eine unveränderte Ansicht des ursprünglichen -Arrays zurück.


z.B.

>>> x = np.arange(4).reshape((2,2)) 
>>> x 
array([[0, 1], 
     [2, 3]]) 
>>> 
>>> np.transpose(x) 
array([[0, 2], 
     [1, 3]]) 
1

Sie in der transponieren zu viele Werte angegeben

>>> a = np.arange(8).reshape(2,2,2) 
>>> a.shape (2, 2, 2) 
>>> a.transpose([2,0,1]) 
array([[[0, 2], 
     [4, 6]], 

     [[1, 3], 
     [5, 7]]]) 
>>> a.transpose(3,0,1,2) Traceback (most recent call last): File "<interactive input>", line 1, in <module> ValueError: axes don't match array 
>>> 
Verwandte Themen