Datenwissenschaft

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 mithilfe der NumPy-Bibliothek in Python zu spielen. Diese Lektion ist ein sehr guter Ausgangspunkt, wenn Sie mit Data Science beginnen und einen einführenden mathematischen Überblick über diese Komponenten benötigen und wie wir mit ihnen mit NumPy im Code spielen können.

Die NumPy-Bibliothek ermöglicht es uns, verschiedene Operationen durchzuführen, die an Datenstrukturen durchgeführt werden müssen, die häufig in Machine Learning und Data Science verwendet werden, wie Vektoren, Matrizen und Arrays. Wir zeigen nur die gängigsten Operationen mit NumPy, die in vielen Machine Learning-Pipelines verwendet werden. Bitte beachten Sie zum Schluss, dass NumPy nur eine Möglichkeit ist, die Operationen auszuführen. Daher stehen die mathematischen Operationen, die wir zeigen, im Mittelpunkt dieser Lektion und nicht das NumPy-Paket selbst. Lass uns anfangen.

Was ist ein Vektor??

Laut Google ist ein Vektor eine Größe, die sowohl eine Richtung als auch eine Größe hat, insbesondere als Bestimmung der Position eines Punktes im Raum relativ zu einem anderen.

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 folgendem Codeausschnitt erstellen:

numpy 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 als:

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

Erstellen einer Matrix

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

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

Obwohl Matrix dem mehrdimensionalen Array genau ähnlich ist, 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 geben Arrays und keine Matrix zurück

Verwenden einer Sparse-Matrix

Zur Erinnerung, eine dünn besetzte Matrix ist diejenige, in der die meisten Elemente null sind. Ein gängiges Szenario in der Datenverarbeitung und beim maschinellen Lernen ist nun die Verarbeitung von Matrizen, bei denen die meisten Elemente Null sind. Betrachten Sie zum Beispiel eine Matrix, deren Zeilen jedes Video auf Youtube beschreiben und Spalten jeden registrierten Benutzer darstellen. Jeder Wert gibt an, ob der Benutzer ein Video angesehen hat oder nicht. Natürlich ist die Mehrheit der Werte in dieser Matrix Null. Das Vorteil bei dünnbesetzter Matrix ist, dass es die Werte, die Null sind, nicht speichert. Dies führt zu einem enormen Rechenvorteil und einer Speicheroptimierung. optimization.

Lassen Sie uns hier eine Spark-Matrix erstellen:

aus scipy import spärlich
ursprüngliche_matrix = np.Array([[1, 0, 3], [0, 0, 6], [7, 0, 0]])
spärlich_matrix = spärlich.csr_matrix(original_matrix)
print(sparse_matrix)

Um zu verstehen, wie der Code funktioniert, sehen wir uns die Ausgabe hier an:

Im obigen Code haben wir eine NumPy-Funktion verwendet, um a . zu erstellen Komprimierte spärliche Reihe Matrix, in der Nicht-Null-Elemente unter Verwendung der Null-basierten Indizes dargestellt werden. Es gibt verschiedene Arten von Sparse-Matrix, wie zum Beispiel:

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

Anwenden von Operationen auf alle Vektorelemente

Es ist ein übliches Szenario, wenn wir eine gemeinsame Operation auf mehrere Vektorelemente anwenden müssen. Dies kann durch Definieren eines Lambda und anschließendes Vektorisieren desselben erfolgen. Sehen wir uns ein Code-Snippet für dasselbe an:

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

Um zu verstehen, wie der Code funktioniert, sehen wir uns die Ausgabe hier an:

Im obigen Codeausschnitt haben wir die Vektorisierungsfunktion, die Teil der NumPy-Bibliothek ist, verwendet, um eine einfache Lambda-Definition in eine Funktion umzuwandeln, die jedes einzelne Element des Vektors verarbeiten kann. Es ist wichtig zu beachten, dass Vektorisieren nur eine Schleife über die Elemente und es hat keinen Einfluss auf die Leistung des Programms. NumPy erlaubt auch Rundfunk-, Das bedeutet, dass wir anstelle des obigen komplexen Codes einfach Folgendes hätten tun können:

Matrix * 5

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

Mittelwert, Varianz und Standardabweichung

Mit NumPy ist es einfach, Operationen im Zusammenhang mit deskriptiven Statistiken zu Vektoren durchzuführen. Der Mittelwert eines Vektors kann wie folgt berechnet werden:

np.Mittelwert (Matrix)

Die Varianz eines Vektors kann wie folgt berechnet werden:

np.var(Matrix)

Die Standardabweichung eines Vektors kann wie folgt berechnet werden:

np.Standard (Matrix)

Die Ausgabe der obigen Befehle auf der gegebenen Matrix ist hier gegeben:

Transponieren einer Matrix

Transponieren ist eine sehr häufige Operation, von der Sie immer dann hören werden, wenn Sie von Matrizen umgeben sind. Transponieren ist nur eine Möglichkeit, Spalten- und Zeilenwerte einer Matrix zu vertauschen. Bitte beachten Sie, dass a Vektor kann nicht transponiert werden da ein Vektor nur eine Sammlung von Werten ist, ohne dass diese Werte in Zeilen und Spalten kategorisiert werden. Bitte beachten Sie, dass das Konvertieren eines Zeilenvektors in einen Spaltenvektor keine Transponierung ist (basierend auf den Definitionen der linearen Algebra, die den Rahmen dieser Lektion sprengen würden).

Im Moment werden wir Frieden finden, indem wir einfach eine Matrix transponieren. Es ist sehr einfach, mit NumPy auf die Transponierte einer Matrix zuzugreifen:

Matrix.T

Die Ausgabe des obigen Befehls auf der angegebenen Matrix ist hier gegeben:

Dieselbe Operation kann an einem Zeilenvektor durchgeführt werden, um ihn in einen Spaltenvektor umzuwandeln.

Eine Matrix glätten

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

Matrix.ebnen()

Die Ausgabe des obigen Befehls auf der angegebenen Matrix ist hier gegeben:

Beachten Sie, dass die Flatten-Matrix ein eindimensionales Array ist, einfach linear.

Berechnung von Eigenwerten und Eigenvektoren

Eigenvektoren werden sehr häufig in Machine-Learning-Paketen verwendet. Wenn also eine lineare Transformationsfunktion als Matrix dargestellt wird, dann sind X, Eigenvektoren die Vektoren, die sich nur in der Skalierung des Vektors, aber nicht in seiner Richtung ändern. Wir können das sagen:

Xv = v

Dabei ist X die quadratische Matrix und γ enthält die Eigenwerte. Außerdem enthält v die Eigenvektoren. Mit NumPy ist es einfach Eigenwerte und Eigenvektoren zu berechnen. Hier ist das Code-Snippet, in dem wir dasselbe demonstrieren:

wertet aus, Vektoren = np.linalg.ei(Matrix)

Die Ausgabe des obigen Befehls auf der angegebenen Matrix ist hier gegeben:

Punktprodukte von Vektoren

Punktprodukte von Vektoren ist eine Methode zur Multiplikation von 2 Vektoren. Es erzählt dir von wie viele der Vektoren in die gleiche Richtung weisen, im Gegensatz zum Kreuzprodukt, das Ihnen das Gegenteil sagt, wie wenig die Vektoren in dieselbe Richtung weisen (sogenannte orthogonal). Wir können das Punktprodukt zweier Vektoren wie im Code-Schnipsel hier angegeben berechnen:

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

Die Ausgabe des obigen Befehls für die angegebenen Arrays wird hier angegeben:

Addieren, Subtrahieren und Multiplizieren von Matrizen

Das Addieren und Subtrahieren mehrerer Matrizen ist eine recht einfache Operation in Matrizen. Es gibt zwei Möglichkeiten, dies zu tun. Sehen wir uns das Code-Snippet an, um diese Operationen auszuführen. Um dies einfach zu halten, verwenden wir dieselbe Matrix zweimal:

np.add(Matrix, Matrix)

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

np.subtrahieren (Matrix, Matrix)

Die Ausgabe des obigen Befehls auf der angegebenen Matrix ist hier gegeben:

Wie erwartet wird jedes der Elemente in der Matrix mit dem entsprechenden Element addiert/subtrahiert. Das Multiplizieren einer Matrix ähnelt dem Finden des Punktprodukts, wie wir es zuvor getan haben:

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 ist hier gegeben:

Fazit

In dieser Lektion haben wir viele mathematische Operationen im Zusammenhang mit Vektoren, Matrizen und Arrays durchgeführt, die häufig verwendet werden Datenverarbeitung, deskriptive Statistik und Datenwissenschaft. Dies war eine kurze Lektion, die nur die gebräuchlichsten und wichtigsten Abschnitte der Vielzahl von Konzepten behandelt, aber diese Operationen sollten eine sehr gute Vorstellung davon vermitteln, was alle Operationen beim Umgang mit diesen Datenstrukturen durchgeführt werden können.

Bitte teilen Sie Ihr Feedback zur Lektion auf Twitter mit @linuxhint und @sbmaggarwal (das bin ich)!).

Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...