Wie man Matrixmultiplikation in Python durchführt
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
- NumPy bietet effiziente und prägnante Werkzeuge für die Matrixmultiplikation.
- Der Operator
@
ist eine saubere, moderne Syntax für die Matrixmultiplikation. - Gültige Matrixdimensionen sind für eine erfolgreiche Multiplikation unerlässlich.
Die Matrixmultiplikation ist eine grundlegende Operation in der linearen Algebra mit breiten Anwendungen in Bereichen wie Data Science, maschinelles Lernen, Computergrafik und wissenschaftliches Rechnen. Python bietet verschiedene Methoden und Bibliotheken, um die Matrixmultiplikation effizient und genau durchzuführen.
Dieser Artikel führt Sie durch verschiedene Möglichkeiten, die Matrixmultiplikation in Python durchzuführen, von der grundlegenden List Comprehension bis hin zur Verwendung leistungsstarker Bibliotheken wie NumPy.
1. Grundlagen der Matrixmultiplikation
Die Matrixmultiplikation ist nicht dasselbe wie die elementweise Multiplikation. Um zwei Matrizen A und B zu multiplizieren, muss die Anzahl der Spalten in A mit der Anzahl der Zeilen in B übereinstimmen. Die resultierende Matrix C hat die gleiche Anzahl von Zeilen wie A und die gleiche Anzahl von Spalten wie B.
2. Verwenden von verschachtelten Schleifen (reines Python)
Der einfachste Weg, zwei Matrizen zu multiplizieren, ist die Verwendung von verschachtelten Schleifen.
def matrix_multiply(A, B): result = [[0 for _ in range(len(B[0]))] for _ in range(len(A))] for i in range(len(A)): for j in range(len(B[0])): for k in range(len(B)): result[i][j] += A[i][k] * B[k][j] return result # Beispiel A = [[1, 2], [3, 4]] B = [[5, 6], [7, 8]] print(matrix_multiply(A, B)) # Ausgabe: [[19, 22], [43, 50]]
Obwohl dieser Ansatz funktioniert, ist er für große Matrizen nicht effizient und anfälliger für Fehler.
3. Verwenden der dot()
-Funktion von NumPy
NumPy ist eine beliebte Python-Bibliothek für numerisches Rechnen. Ihre dot()
-Funktion ermöglicht eine schnelle und prägnante Matrixmultiplikation.
import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) C = np.dot(A, B) print(C) # Ausgabe: [[19 22] # [43 50]]
Diese Methode ist sowohl effizient als auch lesbar, was sie in den meisten Fällen zu einer bevorzugten Wahl macht.
4. Verwenden des Operators @
In Python 3.5 und höher wird der Operator @
als bequeme Syntax für die Matrixmultiplikation eingeführt.
import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) C = A @ B print(C) # Ausgabe: [[19 22] # [43 50]]
Dieser Operator ist äquivalent zu np.matmul()
oder np.dot()
und eignet sich ideal zum Schreiben von sauberem und prägnantem Code.
5. Verwenden der matmul()
-Funktion von NumPy
matmul()
verhält sich ähnlich wie dot()
, bietet aber eine bessere Unterstützung für Broadcasting und höherdimensionale Arrays.
import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) C = np.matmul(A, B) print(C) # Ausgabe: [[19 22] # [43 50]]
Verwenden Sie matmul()
, wenn Sie mit Tensoren oder Batches von Matrizen arbeiten.
6. Bewährte Verfahren
- Bevorzugen Sie NumPy gegenüber reinen Python-Schleifen, um die Leistung zu verbessern.
- Verwenden Sie den
@
-Operator odernp.matmul()
, um die Lesbarkeit zu verbessern. - Validieren Sie immer die Formkompatibilität von Matrizen vor der Multiplikation.
Schlussfolgerung
Die Matrixmultiplikation in Python kann mit einfachen Schleifen oder effizienteren Werkzeugen wie NumPy durchgeführt werden. Für die meisten realen Anwendungen ist die Verwendung der integrierten Funktionen von NumPy oder des Operators @
der effektivste und zuverlässigste Ansatz.
Ob Sie nun grundlegende lineare Algebra betreiben oder Modelle für maschinelles Lernen erstellen, die Beherrschung von Matrixoperationen ist unerlässlich – und Python macht sie sowohl zugänglich als auch leistungsstark.
FAQs
Beide führen eine Matrixmultiplikation durch, aber @
ist in Python 3.5+ sauberer und lesbarer.
NumPy ist für die Leistung optimiert und reduziert die Codekomplexität.
Nein, die Anzahl der Spalten in der ersten Matrix muss mit der Anzahl der Zeilen in der zweiten übereinstimmen.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Python-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Language Support
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeit-Metriken und -Protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Null Betriebsaufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ