Das Transponieren von Matrizen ist eine grundlegende Operation in der linearen Algebra. Dabei werden die Zeilen und Spalten einer Matrix vertauscht. In Numpy ist das Transponieren von Matrizen besonders einfach und kann mit der Methode T oder der Funktion transpose() durchgeführt werden.
In diesem Tutorial wird gezeigt, wie Matrizen in Numpy transponiert werden können, beginnend mit einfachen Beispielen und allmählich komplexeren Strukturen.
Falls numpy
noch nicht installiert ist, kann es über pip installiert werden:
pip install numpy
numpy.arange
und TransponierenZuerst wird eine Matrix mit der Funktion arange
erstellt, die eine Reihe von Zahlen generiert und mit reshape
in die gewünschte Form gebracht wird.
import numpy as np
# Eine 2x3-Matrix erstellen
matrix1 = np.arange(1, 7).reshape(2, 3)
# Visualisierung der Matrix
print("Originale Matrix 1 (2x3):\n", matrix1)
# Transponieren der Matrix
transposed_matrix1 = matrix1.T
# Visualisierung der transponierten Matrix
print("Transponierte Matrix 1 (3x2):\n", transposed_matrix1)
Ausgabe:
Originale Matrix 1 (2x3):
[[1 2 3]
[4 5 6]]
Transponierte Matrix 1 (3x2):
[[1 4]
[2 5]
[3 6]]
In diesem Beispiel wird eine 2x3-Matrix erstellt. Nach dem Transponieren werden die Zeilen und Spalten vertauscht, sodass eine 3x2-Matrix entsteht.
# Eine 3x3-Matrix erstellen
matrix2 = np.arange(1, 10).reshape(3, 3)
# Visualisierung der Matrix
print("Originale Matrix 2 (3x3):\n", matrix2)
# Transponieren der Matrix
transposed_matrix2 = matrix2.T
# Visualisierung der transponierten Matrix
print("Transponierte Matrix 2 (3x3):\n", transposed_matrix2)
Ausgabe:
Originale Matrix 2 (3x3):
[[1 2 3]
[4 5 6]
[7 8 9]]
Transponierte Matrix 2 (3x3):
[[1 4 7]
[2 5 8]
[3 6 9]]
In diesem Beispiel handelt es sich um eine quadratische 3x3-Matrix. Nach dem Transponieren bleibt die Matrix quadratisch, aber die Elemente werden zwischen den Zeilen und Spalten vertauscht.
Das Transponieren ist nicht nur auf zweidimensionale Matrizen beschränkt. Auch mehrdimensionale Arrays können transponiert werden.
# Ein 3-dimensionales Array erstellen
matrix3d = np.arange(1, 13).reshape(2, 3, 2)
# Visualisierung des Arrays
print("Originales 3D-Array (2x3x2):\n", matrix3d)
# Transponieren des 3D-Arrays
transposed_matrix3d = np.transpose(matrix3d, axes=(1, 0, 2))
# Visualisierung der transponierten Matrix
print("Transponiertes 3D-Array (3x2x2):\n", transposed_matrix3d)
Ausgabe:
Originales 3D-Array (2x3x2):
[[[ 1 2]
[ 3 4]
[ 5 6]]
[[ 7 8]
[ 9 10]
[11 12]]]
Transponiertes 3D-Array (3x2x2):
[[[ 1 2]
[ 7 8]]
[[ 3 4]
[ 9 10]]
[[ 5 6]
[11 12]]]
In diesem Beispiel wird ein dreidimensionales Array erstellt und transponiert. Durch das Angeben der Achsenreihenfolge in np.transpose
wird die Reihenfolge der Dimensionen verändert. Das Ergebnis ist eine Neuanordnung der Dimensionen von (2, 3, 2) auf (3, 2, 2).
Auch Vektoren (1D-Arrays) können transponiert werden. Dies führt jedoch oft nicht zu sichtbaren Änderungen, da Vektoren keine eindeutigen Zeilen und Spalten haben.
# Einen Vektor (1D-Array) erstellen
vector = np.arange(1, 5)
# Visualisierung des Vektors
print("Originaler Vektor:\n", vector)
# Transponieren des Vektors (1D bleibt unverändert)
transposed_vector = vector.T
# Visualisierung des transponierten Vektors
print("Transponierter Vektor:\n", transposed_vector)
Ausgabe:
Originaler Vektor:
[1 2 3 4]
Transponierter Vektor:
[1 2 3 4]
Das Transponieren eines eindimensionalen Arrays (Vektors) ändert die Struktur nicht, da keine zweite Dimension existiert, die vertauscht werden kann.