0Pricing
Learn AI with Python · Lektion

Broadcasting und vektorisierte Operationen

Wie Broadcasting funktioniert, elementweise Operationen und Schleifen durch Vektorisierung vermeiden.

Broadcasting und vektorisierte Operationen ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Warum vektorisieren?

NumPy verarbeitet ganze Arrays mit der Geschwindigkeit von C. Das Ersetzen von Python-Schleifen durch Array-Ausdrücke, die als Vektorisierung bezeichnet werden, ist oft 10- bis 100-mal schneller.

Elementweise Operationen

Arithmetische Operatoren werden elementweise angewendet, wenn die Formen übereinstimmen. Eine Schleife ist nicht erforderlich.

import numpy as np
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
print(a + b)   # [11 22 33]
print(a * b)   # [10 40 90]

Skalares Broadcasting

Eine Operation zwischen einem Array und einem Skalar wendet den Skalar auf jedes Element an. Der Skalar wird über das gesamte Array „broadcastet“.

a = np.array([1, 2, 3, 4])
print(a * 10)   # [10 20 30 40]
print(a + 100)  # [101 102 103 104]

Was ist Broadcasting?

Broadcasting ermöglicht es NumPy, Arrays mit unterschiedlichen Formen zu kombinieren, indem das kleinere Array virtuell gestreckt wird, ohne Speicher zu kopieren.

Die Broadcasting-Regel

Vergleichen Sie die Formen ab der letzten (äußersten rechten) Dimension. Zwei Dimensionen sind kompatibel, wenn sie gleich sind oder eine von ihnen 1 ist. Eine Dimension der Größe 1 wird passend gestreckt.

# (3, 4) with (4,)   -> compatible (trailing 4 matches)
# (3, 4) with (3, 1)  -> compatible (1 stretches to 4)
# (3, 4) with (3,)    -> ERROR (trailing 4 vs 3)

Broadcasting eines Zeilenvektors

Ein 1D-Array, dessen Länge der Anzahl der Spalten entspricht, wird zu jeder Zeile addiert.

m = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([10, 20, 30])
print(m + row)
# [[11 22 33]
#  [14 25 36]]

Broadcasting eines Spaltenvektors

Formen Sie einen Vektor zu einer Spalte mit der Form (n,1) um, damit er sich über die Spalten statt über die Zeilen broadcastet.

col = np.array([[100], [200]])   # shape (2, 1)
print(m + col)
# [[101 102 103]
#  [204 205 206]]

Datenzentrierung (praktische Anwendung)

Durch das Subtrahieren des Mittelwerts pro Spalte wird jedes Feature zentriert – ein üblicher Vorverarbeitungsschritt, der sich mit einer einzigen Broadcasting-Zeile erledigen lässt.

data = np.array([[1.0, 10.0], [2.0, 20.0], [3.0, 30.0]])
centered = data - data.mean(axis=0)
print(centered)
# columns now have mean 0

Universelle Funktionen (ufuncs)

NumPy enthält schnelle elementweise mathematische Funktionen namens ufuncs: np.sqrt, np.log, np.exp und weitere. Sie sind vektorisiert und unterstützen Broadcasting.

a = np.array([1.0, 4.0, 9.0, 16.0])
print(np.sqrt(a))   # [1. 2. 3. 4.]
print(np.log(a))    # natural log of each element
print(np.exp([0, 1]))  # [1.        2.71828183]

Geschwindigkeit: Schleife vs. Vektorisierung

Dieselbe Berechnung ist in vektorisierter Form deutlich schneller. Verwenden Sie %timeit, um den Unterschied bei einer Million Elementen zu erleben.

big = np.arange(1000000, dtype=float)
# Slow Python loop:
# %timeit [x*x for x in big]
# Fast vectorized:
%timeit big * big   # typically tens of times faster

Vektorisierung kombinieren

Verketten Sie ufuncs und arithmetische Operationen, um Formeln direkt auszudrücken. Damit wird eine Gaußkurve ganz ohne Schleifen berechnet.

x = np.linspace(-3, 3, 7)
y = np.exp(-x**2 / 2)
print(np.round(y, 3))

Kurzer Test

Testen Sie Ihr Verständnis von Broadcasting.

Zusammenfassung

Die wichtigsten Aspekte der Vektorisierung:

  • Elementweise Operationen vermeiden Python-Schleifen und laufen mit C-Geschwindigkeit
  • Broadcasting richtet die letzten Dimensionen aus; die Größen müssen übereinstimmen oder 1 sein
  • Verwenden Sie Spaltenvektoren (n,1), um über die Spalten hinweg zu broadcasten
  • ufuncs: np.sqrt, np.log, np.exp
  • Zentrieren Sie Daten mit data - data.mean(axis=0)

Häufig gestellte Fragen

Ist die Lektion „Broadcasting und vektorisierte Operationen“ kostenlos?

Ja — der vollständige Text von „Broadcasting und vektorisierte Operationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Broadcasting und vektorisierte Operationen“?

Wie Broadcasting funktioniert, elementweise Operationen und Schleifen durch Vektorisierung vermeiden. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Broadcasting und vektorisierte Operationen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Arrays erstellen und ihre Eigenschaften verstehen
  2. Indexierung, Slicing und Fancy Indexing
  3. Broadcasting und vektorisierte Operationen
  4. Lineare Algebra mit NumPy
← Zurück zu Learn AI with Python