Matrixentransponse mit Numpy

Matrixentransponse mit Numpy

In diesem Beitrag sehen wir, wie der Matrix -Transponierungsbetrieb mit Numpy durchgeführt werden kann. Der Transponierungsbetrieb ist eine Operation auf einer Matrix, so dass sie die Matrix über die Diagonale dreht. Die Matrixtransfers auf einem 2-D-Array von Dimension N * M erzeugt eine Ausgangsmatrix der Dimension m * n.

$ python3
Python 3.8.5 (Standard, 8. März 2021, 13:02:45)
[GCC 9.3.0] auf Linux2

Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" für weitere Informationen ein.

>>> Numph als NP importieren
>>> a = np.Array ([[1, 2, 3],
… [4, 5, 6]]))
>>> a.Form
(2, 3)
>>> c = a.transponieren ()
>>> c
Array ([[1, 4],
[2, 5],
[3, 6]])
>>> c.Form
(3, 2)

Eine Matrixtransferin für ein 1-D-Array hat keine Auswirkung, da die Transponierung dem ursprünglichen Array mit der Übertragung entspricht.

>>> a = np.Einen (3)
>>> a
Array ([1., 1., 1.]))
>>> a.Form
(3,)
>>> a_transpsis = a.transponieren () # Transponierung von 1-D-Array
>>> a_transpsis
Array ([1., 1., 1.]))
>>> a_transpsis.Form
(3,)

Um ein 1-D-Array in seine Transponierung als 2-D-Vektor umzuwandeln, muss eine zusätzliche Achse hinzugefügt werden. Fortsetzung vom vorherigen Beispiel, dem NP,.Newaxis kann einen neuen 2-D-Spaltenvektor aus einem 1-D-Vektor erstellen.

>>> a
Array ([1., 1., 1.]))
>>> a [np.Newaxis,:]
Array ([[1)., 1., 1.]]))
>>> a [np.Newaxis,:].Form
(1, 3)
>>> a [: np.Newaxis]
Array ([[1).],
[1.],
[1.]]))
>>> a [: np.Newaxis].Form
(3, 1)

Die Transponierungsoperation in einem Array erfordert auch eine Argumentachsen. Wenn die Argumentachsen keine sind, kehrt die Transponierungsoperation die Reihenfolge der Achsen um.

>>> a = np.Arange (2 * 3 * 4).Umform (2, 3, 4)
>>> a
Array ([[[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]]))
>>> a_t = a.transponieren ()
>>> a_t
Array ([[[0, 12],
[4, 16],
[8, 20]],
[[1, 13],
[5, 17],
[9, 21]],
[[2, 14],
[6, 18],
[10, 22]],
[[3, 15],
[7, 19],
[11, 23]]))
>>> a.Form
(2, 3, 4)
>>> a_t.Form
(4, 3, 2)

Im obigen Beispiel war die Dimension der Matrix A (2, 3, 4) und nach der Transponierung wurde es (4, 3, 2). Die Standardtranspulsregel kehrt die Achse der Eingangsmatrix I um.e at [i, j, k] = a [k, j, i].

Diese Standardpermutation kann geändert werden, indem ein Tupel von Ganzzahlen als Eingabemarch für Transponierung bestanden wird. Im folgenden Beispiel bedeutet das J im ith -Ort des Tupels, dass eine Achse von A's A wird.transponieren () 's Jth -Achse. Wenn wir uns vom vorherigen Beispiel fortsetzen, übergeben wir die Argumente (1, 2, 0) an a.transponieren (). Die hier folgende Verfolgung ist bei [i, j, k] = a [j, k, i].

>>> a_t = a.Transponieren ((1, 2, 0))
>>> a_t.Form
(3, 4, 2)
>>> a_t
Array ([[[0, 12],
[1, 13],
[2, 14],
[3, 15]],
[[4, 16],
[5, 17],
[6, 18],
[7, 19]],
[[8, 20],
[9, 21],
[10, 22],
[11, 23]]))