🔢 Einführung in NumPy – Das Fundament der numerischen Programmierung in Python#
🧠 Was ist NumPy?#
NumPy steht für Numerical Python und ist eine der wichtigsten und leistungsfähigsten Bibliotheken in der wissenschaftlichen Programmierung mit Python.
NumPy ist vor allem bekannt für sein zentrales Objekt: das n-dimensionale Array (ndarray). Es ist das Rückgrat vieler weiterer Pakete – z. B. Pandas, SciPy, scikit-learn, TensorFlow – und bildet die Grundlage für alle numerischen und datengetriebenen Aufgaben in Python.
✅ Warum NumPy statt Python-Listen?#
Python-Listen |
NumPy-Arrays |
---|---|
Langsam bei Berechnungen |
Sehr schnell (C-basiert) |
Unterschiedliche Typen |
Einheitlicher Datentyp (homogen) |
Kein Broadcasting |
Rechnen ohne Schleifen |
Kein echtes Multidimensional |
Beliebig viele Dimensionen möglich |
⚙️ Was kann NumPy?#
Mit NumPy kannst du:
große, mehrdimensionale Datenarrays effizient speichern und verarbeiten
mathematische Operationen auf ganze Arrays gleichzeitig ausführen (Vektorisierung)
Matrix- und lineare Algebra berechnen
statistische Auswertungen durchführen
Zufallszahlen erzeugen (für Simulationen oder Data Science)
🔧 NumPy installieren#
pip install numpy
Dann
import numpy as np
🧪 Mini-Beispiel:#
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a * b) # [ 4 10 18]
➡️ Du musst keine Schleifen schreiben – NumPy übernimmt das für dich!
🧭 Übersicht: Themenplan#
📘 Abschnitt 1 – Einführung in NumPy & Arrays#
NumPy Arrays: Erstellen mit np.array()
Unterschiede zu Listen
Array-Eigenschaften: shape, ndim, dtype, size
Übung: Erstelle ein 1D- und 2D-Array, gib Form, Dimension, Datentyp aus
📘 Abschnitt 2 – Array-Erzeugung & Grundoperationen#
Erzeugen mit np.zeros(), np.ones(), np.arange(), np.linspace(), np.eye()
Zufallsarrays mit np.random
Indexing und Slicing (1D, 2D)
Broadcast-Prinzip
Mathematische Operationen: +, *, **, np.sqrt(), np.sum(), np.mean()
Übung: Erzeuge ein 3×3 Array mit Zufallswerten und berechne Zeilensummen
📘 Abschnitt 3 – Indexierung, Slicing & Boolean-Masken#
Fortgeschrittenes Slicing in 2D/3D Arrays
Teilarrays vs. Kopien
Bedingte Auswahl (array[array > 5])
Änderungen über Boolean-Masken
Übung: Finde alle Werte > Mittelwert, setze sie auf 0
📘 Abschnitt 4 – Rechnen mit Arrays & Broadcasting#
Elementweise Operationen
Vektor- und Matrixrechnung
Broadcasting-Regeln (z. B. Array + Skalar, Array + Array mit anderer Form)
Aggregationsfunktionen: sum, mean, std, axis=…
Vergleich mit Schleifen → Warum NumPy effizient ist
Übung: Vergleiche Laufzeit für Summe mit Schleife vs. NumPy-Operation
Abschnitt 5 – Mehrdimensionale Arrays & Reshape#
reshape()
,flatten()
,ravel()
Transponieren mit
.T
Stacken von Arrays:
np.vstack()
,np.hstack()
,np.concatenate()
,np.split()
,np.array_split()
Übung: Forme ein 1D-Array zu 3×3 Matrix, transponiere es, teile es in zwei Hälften
📘 Abschnitt 6 – Lineare Algebra mit NumPy#
np.dot() vs. @-Operator
Matrix-Multiplikation
Determinante, Inverse, Transponieren
Eigenwerte, Lösen von Gleichungssystemen:
np.linalg.solve()
,np.linalg.inv()
Übung: Löse ein lineares Gleichungssystem (Ax = b)