- Nutze alle Lernfunktionen, wie Tests, Quizze und Umfragen.
- Schreibe Beiträge und tausche dich in unseren Foren aus.
- In einigen Lernangeboten bestätigen wir dir die Teilnahme.
AI.Lab
Kursthemen
-
-
NumPy
NumPy
bietet eine leistungsstarke Alternative zu herkömmlichen Python-Listen, insbesondere wenn es um numerische Berechnungen mit großen Datenmengen geht. Durch die Verwendung vonarray
-Objekten mit festen Datentypen ermöglichtNumPy
eine effiziente Speicherung und Berechnung von Daten. Dies ist entscheidend für die Leistung, da NumPy-Arrays intern wie C-Arrays behandelt werden, was zu erheblich schnelleren Berechnungen führt.Darüber hinaus bietet
NumPy
Funktionen aus verschiedenen Bereichen der numerischen Mathematik wie Analysis, lineare Algebra, Statistik und Numerik. Diese Funktionen ermöglichen es, Arrays miteinander zu verknüpfen und zu verarbeiten, wobeiBroadcasting
eine besonders leistungsstarke Funktion ist, die es ermöglicht, Operationen auf Arrays unterschiedlicher Formen auszuführen.Beispielhafte Verwendung von
NumPy
umfasst Matrixoperationen, statistische Analysen, Fourier-Transformationen und vieles mehr. Außerdem dientNumPy
oft als Grundlage für viele andere wissenschaftliche Python-Bibliotheken, was seine zentrale Rolle im Python-Ökosystem unterstreicht.Um mit
NumPy
zu arbeiten, importieren wir es alsnp
(Alias). -
import numpy as np
-
Erstellung von NumPy Arrays
NumPy Arrays können auf verschiedenen Wegen erstellt werden.
Erstellung aus Listen
Wenn bereits eine Liste mit den benötigten Einträgen vorliegt, kann diese direkt in einen NumPy Array umgeformt werden:
-
# Erstellen eines Arrays aus einer Liste array = np.array([[1, 2, 3, 4, 5],[6,7,8,9,10]]) print("Array erstellt (np.array(liste)):\n", array)
-
Erstellung mit einheitlicher Initialisierung
Soll ein Array mit einer bestimmten Größe erstellt werden, bei denen die Elemente initialisiert werden müssen, können die Funktionen
zeros()
undones()
verwendet werden. Diese erzeugen ein Array mit den übergebenen Dimensionen und füllen es mit Nullen bzw. Einsen.Alternativ dazu kann auch die
full()
Funktion verwendet werden. Sie hat die gleiche Syntax, allerdings wird als weiterer Parameter die Zahl übergeben, mit der das Array gefüllt werden soll. Es ist jedoch zu beachten, dass sie für große Datenmengen langsamer ist als die oben beschriebenen Funktionen. -
# Erstellen eines Arrays mit Nullen zeros_array = np.zeros((3, 3)) print("Array mit Nullen erstellt (np.zeros):\n", zeros_array) # Erstellen eines Arrays mit Einsen ones_array = np.ones((2, 4)) print("\nArray mit Einsen erstellt (np.ones):\n", ones_array) # Erzeugen eines Arrays mit bestimmten Werten mit np.full() full_array = np.full((2, 3), 5) # Erzeugt ein 2x3 Array, das mit dem Wert 5 gefüllt ist print("\nArray mit bestimmten Werten erstellt (np.full):\n", full_array) # Alternativ kann ein Array auch im nachhinein mit einem Wert befüllt werden mit .fill() full_array.fill(10) print("\nArray übergebenem Wert gefüllt (array.fill):\n", full_array)
-
Erstellung ohne Initialisierung
Die Funktion
empty()
allokiert Speicherplatz, ohne diesen zu initialisieren. Diese Variante ist schneller als die oben beschriebenen Varianten. Allerdings muss die Funktion mit Vorsicht verwendet werden, da die Daten in dem neu erstellten Array unbekannt und nicht definiert sind. Sie könnten beliebige Werte enthalten, die zuvor im zugewiesenen Speicherbereich vorhanden waren, was zu unvorhersehbarem Verhalten führen kann. -
# Erstellen eines leeren Arrays (nicht initialisiert) empty_array = np.empty((2, 2)) print("Leeres Array erstellt (np.empty):\n", empty_array)
-
Erstellung mit Sequenzen
Sollen Arrays erstellt werden, welche eine bestimmte Reihenfolge oder Sequenz beinhalten, können dafür
linspace()
oderarange()
verwendet werden:Für die
linspace()
Funktion werden als Parameter der Startwert, der Endwert und die Gesamtanzahl an Werten übergeben.
Für diearange()
Funktion werden Startwert (inklusiv), Endwert (exklusiv) und die Schrittgröße zwischen den Werten angegeben. -
# Erzeugen einer gleichmäßigen linearen Sequenz array_lin = np.linspace(0, 10, 5) print("Gleichmäßige lineare Sequenz (np.linspace):\n", array_lin) # Erzeugen einer Sequenz von Werten arange_seq = np.arange(0, 10, 2) print("\nArange-Sequenz (np.arange):\n", arange_seq)
-
Erstellung mit Zufallswerten
Es können auch Arrays mit zufälligen Werten erstellt werden. Die Funktion
random.rand()
füllt die Arrays mit Float-Werten im Intervall [0,1).
Alternativ dazu kann die Funktionrandom.randint()
aufgerufen werden, wobei ein zusätzliches Minimum und Maximum angegeben werden können. Diese Funktion füllt die Arrays mit zufälligen ganzen Zahlen aus dem Intervall [Min, Max). -
# Erzeugen eines Arrays mit Zufallswerten mit np.random.rand() random_array = np.random.rand(2, 3) # Erzeugt ein 2x3 Array mit Zufallswerten zwischen 0 und 1 print("Array mit Zufallswerten erstellt (np.random.rand):\n", random_array) # Erzeugen eines Arrays mit Zufallszahlen aus einem bestimmten Bereich mit np.random.randint() randint_array = np.random.randint(1, 10, (3, 3)) # Erzeugt ein 3x3 Array mit Zufallszahlen im Bereich von 1 (inklusive) bis 10 (exklusive) print("Array mit Zufallszahlen erstellt (np.random.randint):\n", randint_array)
-
Erstellung der Einheitsmatrix
In der linearen Algebra wird häufig mit der Einheitsmatrix gearbeitet (1 bei Zeile = Spalte, sonst 0). Diese lässt sich ganz leicht über
eye()
erstellen. Das Argument gibt dabei die Dimensionen der quadratischen Matrix an. -
# Erzeugen einer Einheitsmatrix mit np.eye() eye_array = np.eye(3) # Erzeugt eine 3x3 Einheitsmatrix print("Einheitsmatrix erstellt (np.eye):\n", eye_array)
-