Top 10 Matrixoperationen in Numpy mit Beispielen (2023)

Etwa 30–40 % des für Data Science und maschinelles Lernen erforderlichen mathematischen Wissens stammen aus der linearen Algebra. Matrixoperationen spielen in der linearen Algebra eine wichtige Rolle. Heute diskutieren wir 10 solcher Matrixoperationen mit Hilfe der leistungsstarken Numpy-Bibliothek. Numpy wird im Allgemeinen verwendet, um numerische Berechnungen in Python durchzuführen. Es verfügt außerdem über spezielle Klassen und Unterpakete für Matrixoperationen. Die Verwendung der Vektorisierung ermöglicht es Numpy, Matrixoperationen effizienter durchzuführen, indem viele for-Schleifen vermieden werden.

Ich werde die Bedeutung, Hintergrundbeschreibung und Codebeispiele für jede in diesem Artikel besprochene Matrixoperation hinzufügen. Im Abschnitt „Wichtige Erkenntnisse“ am Ende dieses Artikels finden Sie einige spezifischere Fakten und eine kurze Zusammenfassung der Matrixoperationen. Lesen Sie daher unbedingt auch diesen Abschnitt.

Ich werde jede Matrixoperation in der folgenden Reihenfolge besprechen. Hier ist die Liste der zehn besten Matrixoperationen, die ich sorgfältig für Sie ausgewählt habe.

  1. Innenprodukt
  2. Skalarprodukt
  3. Transponieren
  4. Verfolgen
  5. Rang
  6. Bestimmend
  7. Echt umgekehrt
  8. Pseudo-Invers
  9. Flatten
  10. Eigenwerte und Eigenvektoren

Voraussetzungen

Um den vollen Nutzen aus diesem Artikel zu ziehen, sollten Sie die Grundlagen von Numpy und die Methoden zur Array-Erstellung kennen. Wenn Sie nicht über dieses Wissen verfügen, lesen Sie den folgenden Artikel von mir.

  • NumPy für Data Science: Teil 1 (NumPy-Grundlagen und Array-Erstellung)

Beginnen wir mit dem ersten, demInnenprodukt.

Innenprodukt

DerInnenproduktNimmt zwei Vektoren gleicher Größe und gibt eine einzelne Zahl (Skalar) zurück. Dies wird berechnet, indem die entsprechenden Elemente in jedem Vektor multipliziert und alle diese Produkte addiert werden. In Numpy werden Vektoren als eindimensionale Numpy-Arrays definiert.

Um das innere Produkt zu erhalten, können wir beides verwendennp.inner()odernp.dot(). Beide liefern die gleichen Ergebnisse. Die Eingaben für diese Funktionen sind zwei Vektoren und sollten die gleiche Größe haben.

Top 10 Matrixoperationen in Numpy mit Beispielen (3)

Skalarprodukt

DerSkalarproduktist für Matrizen definiert. Es ist die Summe der Produkte der entsprechenden Elemente in den beiden Matrizen. Um das Skalarprodukt zu erhalten, sollte die Anzahl der Spalten in der ersten Matrix gleich der Anzahl der Zeilen in der zweiten Matrix sein.

Es gibt zwei Möglichkeiten, Matrizen in Numpy zu erstellen. Am häufigsten wird Numpy verwendetndarray-Klasse. Hier erstellen wir zweidimensionale Numpy-Arrays (ndarray-Objekte). Die andere Möglichkeit besteht darin, Numpy zu verwendenMatrixklasse. Hier erstellen wir Matrixobjekte.

Das Skalarprodukt von Ndarray- und Matrixobjekten kann mit erhalten werdennp.dot().

Top 10 Matrixoperationen in Numpy mit Beispielen (4)

Beim Multiplizieren zweier Ndarray-Objekte mit dem*Operator, das Ergebnis ist dasElement-für-Element-Multiplikation. Andererseits, wenn zwei Matrixobjekte mit multipliziert werden*Operator, das Ergebnis ist dasPunktprodukt (Matrixprodukt).was gleichbedeutend mit dem istnp.dot()wie zuvor.

Top 10 Matrixoperationen in Numpy mit Beispielen (5)

Transponieren

Dertransponiereneiner Matrix wird durch Vertauschen ihrer Zeilen mit ihren Spalten ermittelt. Wir können benutzennp.transpose()Funktion oder NumPyndarray.transpose()Methode bzwndarray.T (eine spezielle Methode, die keine Klammern erfordert), um die Transponierte zu erhalten. Alle liefern die gleiche Ausgabe.

Top 10 Matrixoperationen in Numpy mit Beispielen (6)

Die Transponierung kann auch auf einen Vektor angewendet werden. Technisch gesehen kann ein eindimensionales Numpy-Array jedoch nicht transponiert werden.

numpy als np importierena = np.array([1, 2, 3])
print("a = ")
drucken(a)
print("\na.T = ")
print(a.T)
Top 10 Matrixoperationen in Numpy mit Beispielen (7)

Wenn Sie einen Vektor wirklich transponieren möchten, sollte er als zweidimensionales Numpy-Array mit doppelten eckigen Klammern definiert werden.

numpy als np importierena = np.array([[1, 2, 3]])
print("a = ")
drucken(a)
print("\na.T = ")
print(a.T)
Top 10 Matrixoperationen in Numpy mit Beispielen (8)

Verfolgen

Derverfolgenist die Summe der Diagonalelemente in einer quadratischen Matrix. Es gibt zwei Methoden zur Berechnung der Spur. Wir können einfach das verwendenverfolgen()Methode eines Ndarray-Objekts oder ermitteln Sie zuerst die Diagonalelemente und dann die Summe.

numpy als np importierena = np.array([[2, 2, 1],
[1, 3, 1],
[1, 2, 2]])
print("a = ")
drucken(a)
print("\nTrace:", a.trace())
print("Trace:", sum(a.diagonal()))
Top 10 Matrixoperationen in Numpy mit Beispielen (9)

Rang

DerRangeiner Matrix sind die Dimensionen des Vektorraums, der von ihren Spalten oder Zeilen aufgespannt (erzeugt) wird. Mit anderen Worten, es kann als die maximale Anzahl linear unabhängiger Spaltenvektoren oder Zeilenvektoren definiert werden.

Der Rang einer Matrix kann mithilfe von ermittelt werdenmatrix_rank()Funktion, die von Numpy kommtLeinsamenPaket.

numpy als np importierena = np.arange(1, 10)
a.shape = (3, 3)
print("a = ")
drucken(a)
rank = np.linalg.matrix_rank(a)
print("\nRang:", Rang)
Top 10 Matrixoperationen in Numpy mit Beispielen (10)

Bestimmend

Derbestimmendeiner quadratischen Matrix berechnet werdenDie()Funktion, die ebenfalls aus dem Numpy stammtLeinsamenPaket. Wenn die Determinante 0 ist, ist diese Matrix nicht invertierbar. In der Algebra wird sie als singuläre Matrix bezeichnet.

numpy als np importierena = np.array([[2, 2, 1],
[1, 3, 1],
[1, 2, 2]])
print("a = ")
drucken(a)
it = np.linalg.it(a)
print("\nDeterminant:", np.round(det))
Top 10 Matrixoperationen in Numpy mit Beispielen (11)

Echt umgekehrt

Derwahre Umkehrungeiner quadratischen Matrix kann mit der gefunden werdeninv()Funktion des NumpyLeinsamenPaket. Wenn die Determinante einer quadratischen Matrix nicht 0 ist, hat sie eine echte Umkehrung.

numpy als np importierena = np.array([[2, 2, 1],
[1, 3, 1],
[1, 2, 2]])
print("a = ")
drucken(a)
it = np.linalg.it(a)
print("\nDeterminant:", np.round(det))
inv = np.linalg.inv(a)
print("\nInverse von a = ")
drucken(inv)
Top 10 Matrixoperationen in Numpy mit Beispielen (12)

Wenn Sie versuchen, die wahre Umkehrung einer singulären Matrix (einer quadratischen Matrix, deren Determinante 0 ist) zu berechnen, erhalten Sie eine Fehlermeldung.

numpy als np importierena = np.array([[2, 8],
[1, 4]])
print("a = ")
drucken(a)
it = np.linalg.it(a)
print("\nDeterminant:", np.round(det))
inv = np.linalg.inv(a)
print("\nInverse von a = ")
drucken(inv)
Top 10 Matrixoperationen in Numpy mit Beispielen (13)

Pseudo-Invers

Derpseudo (nicht echt) umgekehrtkann sogar für eine singuläre Matrix (eine quadratische Matrix, deren Determinante 0 ist) mit berechnet werdenpinv()Funktion des NumpyLeinsamenPaket.

numpy als np importierena = np.array([[2, 8],
[1, 4]])
print("a = ")
drucken(a)
it = np.linalg.it(a)
print("\nDeterminant:", np.round(det))
pinv = np.linalg.pinv(a)
print("\nPseudo-Inverse von a = ")
drucken(pinv)
Top 10 Matrixoperationen in Numpy mit Beispielen (14)

Es gibt keinen Unterschied zwischen echter Inversität und Pseudoinversität, wenn eine quadratische Matrix nicht singulär ist (Determinante ist).nicht0).

Flatten

Flattenist eine einfache Methode, um eine Matrix in ein eindimensionales Numpy-Array umzuwandeln. Hierfür können wir die verwendenflatten()Methode eines Ndarray-Objekts.

numpy als np importierena = np.arange(1, 10)
a.shape = (3, 3)
print("a = ")
drucken(a)
print("\nNach dem Reduzieren")
drucken("------------------")
print(a.flatten())
Top 10 Matrixoperationen in Numpy mit Beispielen (15)

Eigenwerte und Eigenvektoren

LassenABohnen x n-Matrix. Ein Skalarlheißt anEigenwertvonAwenn es einen Vektor ungleich Null gibtXdie folgende Gleichung erfüllen.

Top 10 Matrixoperationen in Numpy mit Beispielen (16)

Der VektorXheißt dasEigenvektorvonAkorrespondierend zul.

In Numpy können sowohl Eigenwerte als auch Eigenvektoren gleichzeitig berechnet werdeneig()Funktion.

numpy als np importierena = np.array([[2, 2, 1],
[1, 3, 1],
[1, 2, 2]])
print("a = ")
drucken(a)
w, v = np.linalg.eig(a)
print("\nEigenwerte:")
drucken(w)
print("\nEigenvektoren:")
drucken(v)
Top 10 Matrixoperationen in Numpy mit Beispielen (17)

Die Summe der Eigenwerte (1+5+1=7) ist gleich der Spur (2+3+2=7) derselben Matrix! Das Produkt der Eigenwerte (1x5x1=5) ist gleich der Determinante (5) derselben Matrix!

Eigenwerte und Eigenvektoren sind in der Hauptkomponentenanalyse (PCA) äußerst nützlich. Bei der PCA stellen die Eigenvektoren der Korrelations- oder Kovarianzmatrix die Hauptkomponenten (die Richtungen der maximalen Varianz) dar, und die entsprechenden Eigenwerte stellen das Ausmaß der Variation dar, die durch jede Hauptkomponente erklärt wird. Wenn Sie mehr darüber erfahren möchten, lesen Sie die folgenden von mir verfassten Artikel.

  • Hauptkomponentenanalyse (PCA) mit Scikit-learn
  • Hauptkomponentenanalyse für Brustkrebsdaten mit R und Python

Dank der Numpy-Bibliothek können Sie Matrixoperationen problemlos mit nur einer oder zwei Codezeilen durchführen. Heute haben wir 10 Matrixoperationen in Numpy durchgeführt. Numpy verfügt über allgemeine Funktionen sowie spezielle Funktionen für die lineare Algebra, zum Beispiel dieLeinsamenDas Paket enthält einige spezielle Funktionen für die lineare Algebra.

In Numpy sind Matrizen und Ndarrays zwei verschiedene Dinge. Der beste Weg, sich mit ihnen vertraut zu machen, besteht darin, selbst mit den Codes zu experimentieren. Es ist immer besser, die Abmessungen von Matrizen und Ndarrays zu überprüfen.

In Scikit-learn-Bibliotheken für maschinelles Lernen funktionieren die meisten der heute besprochenen Matrixoperationen hinter den Kulissen, wenn wir ein Modell erstellen und anpassen. Zum Beispiel, wenn wir Scikit-learn verwendenPCA()Funktion werden die Eigenwerte und Eigenvektoren im Hintergrund berechnet. Scikit-learn und viele andere Bibliotheken wie Pandas, Seaborn und Matplotlib wurden auf Numpy aufgebaut. Numpy ist also eine leistungsstarke Python-Bibliothek.

Wir können auch einige Matrixoperationen kombinieren, um komplexe Berechnungen durchzuführen. Wenn Sie beispielsweise drei Matrizen namens A, B und C in dieser Reihenfolge multiplizieren möchten, können wir verwendennp.dot(np.dot(A, B), C). Die Maße von A, B und C sollten entsprechend angepasst werden.

Danke fürs Lesen!

Dieses Tutorial wurde entworfen und erstellt vonRukshan Pramoditha,der Autor vonData Science 365-Blog.

Lesen Sie meine anderen Artikel unterhttps://rukshanpramoditha.medium.com

24.03.2021

References

Top Articles
Latest Posts
Article information

Author: Prof. Nancy Dach

Last Updated: 04/27/2023

Views: 5259

Rating: 4.7 / 5 (57 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Prof. Nancy Dach

Birthday: 1993-08-23

Address: 569 Waelchi Ports, South Blainebury, LA 11589

Phone: +9958996486049

Job: Sales Manager

Hobby: Web surfing, Scuba diving, Mountaineering, Writing, Sailing, Dance, Blacksmithing

Introduction: My name is Prof. Nancy Dach, I am a lively, joyous, courageous, lovely, tender, charming, open person who loves writing and wants to share my knowledge and understanding with you.