Einführung
In diesem Lab werden einige der erweiterteren Funktionen von NumPy behandelt, darunter lineare Algebra, Zufallszahlengeneratoren und maskierte Arrays.
Lineare Algebra mit NumPy
NumPy verfügt über eine umfassende Funktionsmenge für lineare Algebra-Operationen. Hier sind einige Beispiele:
Öffnen der Python-Shell
Öffnen Sie die Python-Shell, indem Sie den folgenden Befehl in der Konsole eingeben.
python3
Skalarprodukt
Das Skalarprodukt zweier Arrays kann mit der Funktion np.dot() berechnet werden. Das Skalarprodukt zweier Arrays A und B ist definiert als die Summe des Produkts der entsprechenden Elemente von A und B.
import numpy as np
## Erstellen Sie zwei Arrays
a = np.array([1, 2])
b = np.array([3, 4])
## Berechnen Sie das Skalarprodukt
dot_product = np.dot(a, b)
print(dot_product) ## Ausgabe: 11
Matrizenmultiplikation
Die Matrizenmultiplikation kann mit dem @-Operator oder der Funktion np.matmul() durchgeführt werden.
Lesen Sie die folgenden Beispiele sorgfältig durch.
## Erstellen Sie zwei Matrizen
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
## Matrizenmultiplikation
C = A @ B
print(C) ## Ausgabe: [[19 22], [43 50]]
Sie können auch die Ergebnisse auf andere Weise erhalten.
## Erstellen Sie zwei Matrizen
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
## Matrizenmultiplikation
C = np.matmul(A,B)
print(C) ## Ausgabe: [[19 22], [43 50]]
Determinante und Inverse
Die Determinante und die Inverse einer Matrix können mit den Funktionen np.linalg.det() und np.linalg.inv() berechnet werden.
## Erstellen Sie eine Matrix
A = np.array([[1, 2], [3, 4]])
## Berechnen Sie die Determinante und die Inverse
det_A = np.linalg.det(A)
inv_A = np.linalg.inv(A)
print(det_A) ## Ausgabe: -2.0
print(inv_A) ## Ausgabe: [[-2. 1. ], [ 1.5 -0.5]]
Übung
Jetzt ist es Ihre Zeit, zwei Arrays zu erstellen und die Funktion np.dot() verwenden, um das Skalarprodukt zu berechnen. Verwenden Sie @ oder np.matmul() zur Berechnung der Matrizenmultiplikation und np.linalg.det() und np.linalg.inv()-Funktionen, um die Matrixdeterminante und die Inversmatrix zu berechnen.
Zufallszahlengenerator
NumPy bietet mehrere Funktionen zum Generieren von Zufallszahlen. Hier sind einige Beispiele:
Generieren von Zufallszahlen
Die Funktion np.random.rand() kann verwendet werden, um Zufallszahlen zwischen 0 und 1 zu generieren.
## Generieren Sie eine 2x2 Matrix von Zufallszahlen
a = np.random.rand(2, 2)
print(a) ## Ausgabe: [[0.43584547 0.37752558], [0.08936734 0.65526767]]
Generieren von Zufallszahlen
Die Funktion np.random.randint() kann verwendet werden, um Zufallszahlen zwischen zwei angegebenen Zahlen zu generieren.
## Generieren Sie ein Array von Zufallszahlen zwischen 1 und 10
a = np.random.randint(1, 10, size=(3, 3))
print(a) ## Ausgabe: [[8 7 3], [3 3 7], [8 8 7]]
Generieren einer Normalverteilung
Die Funktion np.random.normal() kann verwendet werden, um Zahlen aus einer Normalverteilung zu generieren.
## Generieren Sie ein Array von Zahlen aus einer Normalverteilung
a = np.random.normal(0, 1, size=(2, 2))
print(a) ## Ausgabe: [[ 1.28418331 -0.90564647], [-0.76477896 1.69903421]]
Übung
Nun folgen Sie den obigen Funktionen, um die Ausgabe von Zufallszahlen, Zufallszahlen und Normalverteilung zu vervollständigen. Bitte beenden Sie diese Übung.
Maskierte Arrays
Maskierte Arrays sind Arrays, denen eine Maske angehängt ist. Die Maske ist ein Array von booleschen Werten, die angeben, welche Elemente des Arrays maskiert (versteckt) werden sollen. NumPy bietet das Modul np.ma zum Arbeiten mit maskierten Arrays.
Erstellen eines maskierten Arrays
Ein maskiertes Array kann mit der Funktion np.ma.masked_array() erstellt werden.
## Erstellen Sie ein Array mit einigen maskierten Werten
a = np.ma.masked_array([1, 2, 3, 4], mask=[True, False, False, True])
print(a) ## Ausgabe: [-- 2 3 --]
Anwenden einer Maske
Eine Maske kann mit der Funktion np.ma.masked_where() auf ein Array angewendet werden.
## Erstellen Sie ein Array
a = np.array([1, 2, 3, 4])
## Erstellen Sie eine Maske
mask = a > 2
## Wenden Sie die Maske an
b = np.ma.masked_where(mask, a)
print(b) ## Ausgabe: [1 2 -- --]
Maskieren von ungültigen Werten
Maskierte Arrays können verwendet werden, um ungültige Werte wie NaNs (not a number) oder Unendlichkeiten zu behandeln.
## Erstellen Sie ein Array mit einigen ungültigen Werten
a = np.array([1, np.nan, np.inf, 4])
## Erstellen Sie ein maskiertes Array
b = np.ma.masked_invalid(a)
print(b) ## Ausgabe: [1.0 -- -- 4.0]
Übung
Nun verwenden Sie das von NumPy bereitgestellte Modul np.ma, um die Erstellung eines maskierten Arrays abzuschließen. Verwenden Sie gleichzeitig die Funktion np.ma.masked_where(), um die Maske auf das Array anzuwenden, und schließlich die Funktion np.ma.masked_invalid(), um ungültige Werte zu behandeln. Bitte beenden Sie diese Übung.
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Experiments!
In diesem Tutorial haben wir einige der erweiterteren Themen in NumPy behandelt, darunter lineare Algebra, Zufallszahlengeneratoren und maskierte Arrays. Diese Funktionen sind für viele Anwendungen nützlich, einschließlich der Datenanalyse und der wissenschaftlichen Computierung.
Bleiben Sie bitte weiterhin fleißig!



