Python -Vektoren, Matrizen und Arrays mit Numpy

Python -Vektoren, Matrizen und Arrays mit Numpy
In dieser Lektion werden wir uns einige nette Tipps und Tricks ansehen, um mit Vektoren, Matrizen und Arrays mit Numpy Library in Python zu spielen. Diese Lektion ist ein sehr guter Ausgangspunkt, wenn Sie in die Data Science gestartet sind und einen einführenden mathematischen Überblick über diese Komponenten benötigen und wie wir mit ihnen mit Numpy in Code spielen können.

Mit der Numpy -Bibliothek können wir verschiedene Vorgänge ausführen, die für Datenstrukturen durchgeführt werden müssen, die häufig in maschinellem Lernen und Datenwissenschaften verwendet werden, wie Vektoren, Matrizen und Arrays. Wir werden nur die meisten häufigsten Operationen mit Numpy zeigen, die in vielen Pipelines für maschinelles Lernen verwendet werden. Bitte beachten Sie schließlich, dass Numpy nur eine Möglichkeit ist, die Operationen auszuführen. Die mathematischen Operationen, die wir zeigen, stehen im Mittelpunkt dieser Lektion und nicht das Numpy -Paket selbst. Lass uns anfangen.

Was ist ein Vektor?

Laut Google ist ein Vektor eine Menge mit einer Richtung und der Größe, zumal die Position eines Punktes im Raum relativ zu einem anderen bestimmt wird.

Vektoren sind im maschinellen Lernen sehr wichtig, da sie nicht nur die Größe, sondern auch die Richtung der Merkmale beschreiben. Wir können einen Vektor in Numpy mit dem folgenden Code -Snippet erstellen:

Numph als NP importieren
row_vector = np.Array ([1,2,3])
print (row_vector)

Im obigen Code -Snippet haben wir einen Zeilenvektor erstellt. Wir können auch einen Spaltenvektor erstellen wie:

Numph als NP importieren
col_vector = np.Array ([1], [2], [3]])
print (col_vector)

Eine Matrix machen

Eine Matrix kann einfach als zweidimensionales Array verstanden werden. Wir können eine Matrix mit Numpy machen, indem wir ein mehrdimensionales Array machen:

matrix = np.Array ([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
Druck (Matrix)

Obwohl Matrix genau ähnlich ist wie das mehrdimensionale Array, Die Matrixdatenstruktur wird nicht empfohlen Aus zwei Gründen:

  1. Das Array ist der Standard, wenn es um das Numpy -Paket geht
  2. Die meisten Operationen mit Numpy gibt Arrays zurück und keine Matrix

Verwenden einer spärlichen Matrix

Um sich zu erinnern, ist eine spärliche Matrix diejenige, bei der die meisten Elemente Null sind. Ein gemeinsames Szenario bei der Datenverarbeitung und maschinellem Lernen ist nun die Verarbeitungsmatrizen, in denen die meisten Elemente Null sind. Betrachten Sie beispielsweise eine Matrix, deren Zeilen jedes Video auf YouTube beschreiben, und Spalten repräsentieren jeden registrierten Benutzer. Jeder Wert stellt dar, ob der Benutzer ein Video gesehen hat oder nicht. Natürlich ist der Großteil der Werte in dieser Matrix Null. Der Vorteil mit spärlicher Matrix ist, dass es nicht die Werte speichert, die Null sind. Dies führt auch zu einem enormen Rechenvorteil und Speicheroptimierung.

Erstellen wir hier eine Funkenmatrix:

von Scipy Import Spärde
original_matrix = np.Array ([[1, 0, 3], [0, 0, 6], [7, 0, 0]])
sparse_matrix = sparse.csr_matrix (original_matrix)
print (sparse_matrix)

Um zu verstehen, wie der Code funktioniert, werden wir uns die Ausgabe hier ansehen:

Im obigen Code haben wir die Funktion eines Numpys verwendet, um a zu erstellen Komprimierte spärliche Reihe Matrix, bei der Elemente ungleich Null unter Verwendung der Null-basierten Indizes dargestellt werden. Es gibt verschiedene Arten von spärlicher Matrix, wie:

  • Komprimierte spärliche Säule
  • Liste der Listen
  • Wörterbuch von Schlüssel

Wir werden hier nicht in andere spärliche Matrizen eintauchen, aber wissen, dass jeder ihrer Nutzungen spezifisch ist und niemand als "Best" bezeichnet werden kann.

Anwendung von Operationen auf alle Vektorelemente

Es ist ein häufiges Szenario, wenn wir einen gemeinsamen Betrieb auf mehrere Vektorelemente anwenden müssen. Dies kann durch Definieren eines Lambda und dann durch die Vectorisierung desselben erfolgen. Lassen Sie uns einen Code -Snippet für dasselbe sehen:

matrix = np.Array ([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
mul_5 = lambda x: x * 5
vectorized_mul_5 = np.vectorize (mul_5)
vectorized_mul_5 (Matrix)

Um zu verstehen, wie der Code funktioniert, werden wir uns die Ausgabe hier ansehen:

Im obigen Code -Snippet haben wir eine vektorisierende Funktion verwendet, die Teil der Numpy -Bibliothek ist, um eine einfache Lambda -Definition in eine Funktion zu verwandeln, die jedes einzelne Element des Vektors verarbeiten kann. Es ist wichtig zu beachten, dass vectorize ist Nur eine Schleife über den Elementen Und es hat keinen Einfluss auf die Leistung des Programms. Numpy erlaubt es auch Rundfunk, Das bedeutet, dass wir anstelle des oben genannten komplexen Code einfach hätte tun können:

Matrix * 5

Und das Ergebnis wäre genau das gleiche gewesen. Ich wollte zuerst den komplexen Teil zeigen, sonst hätten Sie den Abschnitt übersprungen!

Mittelwert, Varianz und Standardabweichung

Mit Numpy ist es einfach, Operationen im Zusammenhang mit beschreibenden Statistiken zu Vektoren durchzuführen. Der Mittelwert eines Vektors kann berechnet werden als:

np.Mittelwert (Matrix)

Die Varianz eines Vektors kann berechnet werden als:

np.var (Matrix)

Die Standardabweichung eines Vektors kann berechnet werden als:

np.STD (Matrix)

Die Ausgabe der obigen Befehle auf der angegebenen Matrix wird hier angegeben:

Eine Matrix umwandeln

Transposion ist eine sehr häufige Operation, über die Sie hören werden, wenn Sie von Matrizen umgeben sind. Die Transponierung ist nur eine Möglichkeit, die Säulenwerte und Zeilenwerte einer Matrix auszutauschen. Bitte beachten Sie, dass a Vektor kann nicht transponiert werden Als Vektor ist nur eine Sammlung von Werten, ohne dass diese Werte in Zeilen und Spalten kategorisiert werden. Bitte beachten Sie, dass das Konvertieren eines Zeilenvektors in einen Spaltenvektor nicht umträgt (basierend auf den Definitionen der linearen Algebra, die außerhalb des Rahmens dieser Lektion liegt).

Im Moment werden wir Frieden finden, nur indem wir eine Matrix umsetzen. Es ist sehr einfach, mit Numpy auf die Transponierung einer Matrix zuzugreifen:

Matrix.T

Die Ausgabe des obigen Befehls auf der angegebenen Matrix wird hier angegeben:

Der gleiche Betrieb kann an einem Zeilenvektor durchgeführt werden, um es in einen Spaltenvektor umzuwandeln.

Abflachung einer Matrix

Wir können eine Matrix in ein eindimensionales Array umwandeln, wenn wir ihre Elemente linear verarbeiten möchten. Dies kann mit dem folgenden Code -Snippet erfolgen:

Matrix.ebnen()

Die Ausgabe des obigen Befehls auf der angegebenen Matrix wird hier angegeben:

Beachten Sie, dass die Flachmatrix ein eindimensionales Array ist, einfach linear in der Mode.

Berechnung von Eigenwerten und Eigenvektoren

Eigenvektoren werden in maschinellem Lernpaketen sehr häufig verwendet. Wenn also eine lineare Transformationsfunktion als Matrix präsentiert wird, dann sind Xenvektoren die Vektoren, die sich nur in Skala des Vektors, nicht jedoch seiner Richtung ändern. Wir können das sagen:

Xv = γV

Hier ist X die Quadratmatrix und γ enthält die Eigenwerte. Außerdem enthält V die Eigenvektoren. Mit Numpy ist es leicht, Eigenwerte und Eigenvektoren zu berechnen. Hier ist der Code -Snippet, in dem wir dasselbe demonstrieren:

Evalues, Evektoren = NP.Linalg.Eigen (Matrix)

Die Ausgabe des obigen Befehls auf der angegebenen Matrix wird hier angegeben:

Punktprodukte von Vektoren

DOT -Produkte von Vektoren sind eine Möglichkeit, 2 Vektoren zu multiplizieren. Es erzählt dir davon Wie viel der Vektoren ist in die gleiche Richtung, Im Gegensatz zu dem Kreuzprodukt, das Ihnen das Gegenteil sagt, wie wenig die Vektoren in die gleiche Richtung sind (orthogonal genannt). Wir können das Punktprodukt von zwei Vektoren wie im Code -Snippet hier berechnen:

a = np.Array ([3, 5, 6])
B = NP.Array ([23, 15, 1])
np.Punkt (a, b)

Die Ausgabe des obigen Befehls in den angegebenen Arrays wird hier angegeben:

Hinzufügen, Subtrahieren und Multiplizieren von Matrizen

Das Hinzufügen und Subtrahieren mehrerer Matrizen ist in Matrizen ein recht einfacher Betrieb. Es gibt zwei Möglichkeiten, wie dies getan werden kann. Schauen wir uns das Code -Snippet an, um diese Operationen auszuführen. Um dies einfach zu halten, verwenden wir zweimal dieselbe Matrix:

np.add (matrix, matrix)

Als nächstes können zwei Matrizen abtrahiert werden als:

np.Subtrahieren (Matrix, Matrix)

Die Ausgabe des obigen Befehls auf der angegebenen Matrix wird hier angegeben:

Wie erwartet wird jedes der Elemente in der Matrix mit dem entsprechenden Element hinzugefügt/subtrahiert. Das Multiplizieren einer Matrix ähnelt dem Finden des Punktprodukts wie zuvor:

np.Punkt (Matrix, Matrix)

Der obige Code findet den wahren Multiplikationswert von zwei Matrizen, angegeben als:

Matrix * Matrix

Die Ausgabe des obigen Befehls auf der angegebenen Matrix wird hier angegeben:

Abschluss

In dieser Lektion haben wir viele mathematische Operationen im Zusammenhang mit Vektoren, Matrizen und Arrays durchlaufen, die häufig verwendete Datenverarbeitung, beschreibende Statistik und Datenwissenschaft werden. Dies war eine schnelle Lektion, die nur die häufigsten und wichtigsten Abschnitte der Vielfalt von Konzepten abdeckte. Diese Operationen sollten jedoch eine sehr gute Vorstellung davon geben, was alle Vorgänge im Umgang mit diesen Datenstrukturen ausgeführt werden können.

Bitte teilen Sie Ihr Feedback frei über die Lektion auf Twitter mit @linuxHint und @sbmaggarwal (das bin ich bin ich!).