Worum es geht: NumPy ist die Grundlage, auf der pandas, scikit-learn und PyTorch aufbauen. Es kann eigentlich nur eine Sache – mit ganzen Zahlenblöcken auf einmal rechnen statt Wert für Wert. Genau das macht den Unterschied zwischen Sekunden und Minuten.
1. Warum nicht einfach Listen? ⚡
Eine Python-Liste kann alles enthalten: Zahlen, Texte, andere Listen. Diese Freiheit kostet Geschwindigkeit, weil bei jeder Rechnung geprüft werden muss, womit man es zu tun hat. Ein NumPy-Array enthält ausschließlich Zahlen desselben Typs, liegt am Stück im Speicher und wird von Prozessorbefehlen bearbeitet, die viele Werte gleichzeitig verarbeiten.
Der Unterschied ist erheblich: Bei einer Million Werte ist NumPy typischerweise fünfzig- bis hundertmal schneller als eine Schleife.
2. Im Editor üben
3. Die Form ist alles 📐
Jedes Array hat eine Form: (3,) ist eine Liste aus drei Zahlen, (3, 2) eine Tabelle mit drei Zeilen und zwei Spalten, (100, 28, 28) sind hundert Bilder zu 28 mal 28 Bildpunkten.
Die häufigste Fehlermeldung beim maschinellen Lernen betrifft genau das: shapes not aligned. Sie bedeutet, dass zwei Arrays nicht zusammenpassen. Der erste Handgriff bei jedem solchen Fehler ist, beide Formen auszugeben und zu vergleichen.
Der Debugging-Reflex
print(a.shape, b.shape). In neun von zehn Fällen sehen Sie das Problem sofort – meist wurden Zeilen und Spalten vertauscht oder eine Dimension fehlt.4. Broadcasting
Wenn Sie flaechen * 180 schreiben, ist die 180 eine einzelne Zahl und das Array hat vier Werte. NumPy dehnt die Zahl gedanklich auf die passende Form aus – das nennt sich Broadcasting. Dasselbe funktioniert mit einer Spalte gegen eine ganze Tabelle.
Das ist bequem und gelegentlich tückisch: Manchmal passt etwas zusammen, das nicht zusammenpassen sollte, und man bekommt ein Ergebnis ohne Fehlermeldung. Auch hier hilft, die Formen vorher anzusehen.
Als Formel ansehen
Regel: Zwei Formen passen, wenn sie von hinten gelesen in jeder Position entweder gleich sind oder eine davon 1 ist. (3, 4) und (4,) passen. (3, 4) und (3,) nicht – hier braucht es reshape(3, 1).
5. Wo Ihnen NumPy überall begegnet
pandas speichert seine Spalten als NumPy-Arrays. scikit-learn erwartet Daten als Arrays und gibt Arrays zurück. Bilder sind Arrays mit drei Dimensionen. PyTorch-Tensoren sind NumPy-Arrays, die zusätzlich auf der Grafikkarte liegen können. Wer NumPy versteht, versteht die Datenstruktur, die allem zugrunde liegt.
6. Was Sie mitnehmen sollten
- Ein Array enthält Zahlen eines Typs und wird als Block bearbeitet.
- Rechnen ohne Schleife ist schneller, kürzer und sicherer.
- Die Form ist bei fast jedem Fehler die erste Frage.
axis=0ist spaltenweise,axis=1zeilenweise.