KI-Entwicklung · Modul 3: Programmieren für KI

Lektion 4 von 7Übung 14 Min.

Rechnen mit Vektoren: NumPy

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.

Die Regel lautet: Wenn Sie in NumPy eine Schleife schreiben, geht es fast immer auch ohne. Vektorisiertes Rechnen ist nicht nur schneller, sondern auch kürzer und weniger fehleranfällig.

2. Im Editor üben

Code-Labor: Rechnen mit Vektoren
Schritt 1 von 5
Rechnen ohne Schleife
Multiplizieren Sie alle Flächen mit 180 – in einer Zeile, ohne Schleife – und geben Sie das Ergebnis aus.
uebung.py
Ausgabe
Noch nichts ausgeführt.

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

Bei jeder Fehlermeldung mit Formen: 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=0 ist spaltenweise, axis=1 zeilenweise.

Fortschritt sichern

Kostenlos registrieren, Lektionen abhaken und 3 Kernideen als Karteikarten wiederholen.