Python Matrix-Operationen mit NumPy: Transponieren, Addition, Multiplikation & Slicing – Ein praktischer Leitfaden
Python Matrix-Operationen mit NumPy: Transponieren, Addition, Multiplikation & Slicing
Mathematische Modellierung, wissenschaftliches Computing und Datenanalyse verlassen sich oft auf effiziente Manipulation zweidimensionaler Daten. In Python können Matrizen mit einfachen Listen oder, leistungsfähiger, mit der NumPy-Bibliothek erstellt werden. Dieser Leitfaden führt Sie durch die gängigsten Matrix-Operationen, komplett mit klaren Code-Beispielen und Best-Practice-Tipps.
Was ist eine Matrix?
Eine Matrix ist ein rechteckiges Array von Zahlen (oder anderen Datentypen), organisiert in Zeilen und Spalten. Während Python keinen dedizierten Matrix-Typ in seiner Kernsprache hat, können Sie eine mit verschachtelten Listen oder mit NumPys ndarray darstellen, das schnelle, vektorisierte Operationen bietet.
Matrix mit verschachtelten Listen erstellen
Verschachtelte Listen sind der einfachste Weg, eine Matrix zu bauen. Jede innere Liste repräsentiert eine Zeile:
# 3x3 Matrix
M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
print(M1)
Ausgabe:
[[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
Daten lesen
Auf Elemente über Zeilen- und Spaltenindizes zugreifen. Um das letzte Element jeder Zeile auszugeben:
for row in M1:
print(row[-1])
Ausgabe:
-6 4 21
Matrizen addieren
Wenn beide Matrizen dieselbe Form haben, ist elementweise Addition unkompliziert:
M2 = [[3, 16, -6], [9, 7, -4], [-1, 3, 13]]
# Ergebnis-Matrix
M3 = [[M1[i][j] + M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)
Ausgabe:
[[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
Elementweise Multiplikation
Ebenso können Sie korrespondierende Elemente multiplizieren:
M3 = [[M1[i][j] * M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)
Ausgabe:
[[24, 224, 36], [108, 49, -16], [11, 9, 273]]
NumPy für effiziente Matrix-Operationen verwenden
NumPy stellt einen dedizierten Array-Typ und eine Fülle vektorisierter Operationen bereit. Installieren Sie es mit pip install numpy und importieren Sie es als np:
import numpy as np
Matrix erstellen
M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)
Ausgabe:
[[ 5 -10 15] [ 3 -6 9] [-4 8 12]]
Grundlegende Operationen
- Addition:
M3 = M1 + M2 - Subtraktion:
M3 = M1 - M2 - Skalarprodukt (Matrix-Multiplikation):
M3 = M1.dot(M2)oderM1 @ M2 - Transponieren:
M2 = M1.transpose()oderM1.T
Beispiel: Matrix-Skalarprodukt
M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
print(M1.dot(M2))
Ausgabe:
[[ 93 78] [-65 -310]]
Slicing
Zeilen und Spalten mit array[zeile_start:zeile_ende, spalte_start:spalte_ende] schneiden:
M = np.array([[2, 4, 6, 8, 10],
[3, 6, 9, -12, -15],
[4, 8, 12, 16, -20],
[5, -10, 15, -20, 25]])
print(M[1:3, 1:4]) # Zeilen 1-2, Spalten 1-3
print(M[:, 3]) # Alle Zeilen, 4. Spalte
print(M[:1, :]) # Erste Zeile, alle Spalten
print(M[:3, :2]) # Erste 3 Zeilen, erste 2 Spalten
Ausgabe:
[[ 6 9 -12] [ 8 12 16]] [ 8 -12 16 -20] [[ 2 4 6 8 10]] [[ 2 4] [ 3 6] [ 4 8]]
Auf Zeilen und Spalten zugreifen
# Zeilen
print(M[0]) # Erste Zeile
print(M[-1]) # Letzte Zeile
# Spalten
print(M[:, 0]) # Erste Spalte
print(M[:, -1]) # Letzte Spalte
Wichtigste Erkenntnisse
- Pythons Liste von Listen ist für kleine Matrizen ausreichend, aber NumPys
ndarrayskaliert weit besser. - Elementweise Operationen (+, -, *, /) funktionieren direkt auf NumPy-Arrays.
- Für echte Matrix-Multiplikation verwenden Sie
np.dot()oder den@-Operator. - Slicing bietet mächtige Wege, um Sub-Matrizen oder spezifische Zeilen/Spalten zu extrahieren.
- Stellen Sie immer sicher, dass Matrizen kompatible Formen haben, bevor Sie Operationen durchführen.
Python
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- C++ Arrays verstehen: Deklaration, Initialisierung und Pointer‑Techniken
- Python print()-Funktion: Praktischer Leitfaden mit Beispielen
- Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
- Python format()-Strings meistern mit klaren Beispielen
- Pythons String.find()-Methode meistern: Syntax, Beispiele & Alternativen
- Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices
- Python abs()-Funktion: Absolutwerte für Zahlen & Komplexe Zahlen berechnen
- Python round()-Funktion erklärt mit praktischen Beispielen
- Pythons range()-Funktion meistern: Von Grundlagen bis zu fortgeschrittenen Anwendungsfällen