Fortgeschrittene Themen in NumPy

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.

Zufallszahlengeneratoren

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!