Das Folgende ist ein Artikel über die Transpositionsmethode von numpy.transpose für dreidimensionale Arrays. Er hat einen guten Referenzwert und ich hoffe, dass er für alle hilfreich sein wird. Kommen Sie vorbei und schauen Sie sich gemeinsam
wie folgt um:
import numpy as np
Dreidimensionales Array
arr1 = np.arange(16).reshape((2, 2, 4)) #[[[ 0 1 2 3] # [ 4 5 6 7]] # [[ 8 9 10 11] # [12 13 14 15]]] arr2=arr1.transpose((1,0,2)) #[[[ 0 1 2 3] # [ 8 9 10 11]] # # [[ 4 5 6 7] # [12 13 14 15]]]
Die positive Sequenz ist (0, 1, 2), und das Array ist
#[[[ 0 1 2 3] # [ 4 5 6 7]] # [[ 8 9 10 11] # [12 13 14 15]]]
Warum nach der Eingabe von tanspose (1, 0, 2) das Array zu
< wird 🎜>
#[[[ 0 1 2 3] # [ 8 9 10 11]] # # [[ 4 5 6 7] # [12 13 14 15]]]
Wenn ich arr1[0,1,0] verwende, ist der Indexwert 4
Wenn ich arr2[1,0,0] verwende, der Index Der Wert ist 4
Es scheint einen Zusammenhang zwischen den Änderungen in der Indexparametertabelle und dem Unterschied zwischen positiver Reihenfolge und transponierter Reihenfolge zu gebenFür das arr1-Array gilt das Die Indexparametertabelle [0, 0, x] kann die erste Zeile der ersten Seite darstellen. Nachdem die beiden aktuellen Parameter ausgetauscht wurden, hat sich die Indexparametertabelle desselben Elements nicht geändert. Daher die erste Zeile der ersten Seite von arr2 und der ersten Seite von arr1 Die erste Zeile ist gleich Für das Array arr1 kann die Indexparametertabelle [0, 1, x] die zweite Zeile der ersten Seite darstellen. Nachdem die beiden aktuellen Parameter ausgetauscht wurden, ist der Indexwert desselben Elements z. B. [0, 1, 0] wird zu [1, 0, 0],Dies erklärt den Unterschied in der Indexparametertabelle des Indexwerts 4
Das ist wahrscheinlich die Idee, also transpose(1,0,2), die zweite Zeile der ersten Seite des Arrays und die erste Zeile der zweiten Seite werden vertauschtDie folgenden vier Transpositionsmethoden sind ungefähr auch so. Wenn Sie sich die Idee genau ansehen, sollte es nicht schwer sein, sie zu verstehenarr3=arr1.transpose((0,2,1)) # [[[ 0 4] # [ 1 5] # [ 2 6] # [ 3 7]] # # [[ 8 12] # [ 9 13] # [10 14] # [11 15]]] arr4=arr1.transpose((2,0,1)) #[[[ 0 4] # [ 8 12]] # # [[ 1 5] # [ 9 13]] # # [[ 2 6] # [10 14]] # # [[ 3 7] # [11 15]]]
von 2 geändert haben auf 4
und der Leitungscode wurde von 4 auf 2 geändert
arr5=arr1.transpose((2,1,0)) #[[[ 0 8] # [ 4 12]] # # [[ 1 9] # [ 5 13]] # # [[ 2 10] # [ 6 14]] # # [[ 3 11] # [ 7 15]]] arr6=arr1.transpose((1,2,0)) #[[[ 0 8] # [ 1 9] # [ 2 10] # [ 3 11]] # # [[ 4 12] # [ 5 13] # [ 6 14] # [ 7 15]]]
Der Code kann als
arr4=arr1.transpose(0,2,1).transpose(1,0,2)
#[[[ 0 4] # [ 8 12]] # # [[ 1 5] # [ 9 13]] # # [[ 2 6] # [10 14]] # # [[ 3 7] # [11 15]]]
Der Unterschied zwischen Array und Asarray in Numpy
Wie man mit booleschen Arrays in Numpy umgeht
Das obige ist der detaillierte Inhalt vonnumpy.transpose-Methode zum Transponieren dreidimensionaler Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!