Array-Operationen und Broadcasting
Führen Sie vektorisierte Arithmetik aus und verstehen Sie die Broadcasting-Regeln.
Array-Operationen und Broadcasting ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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 Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Vektorisierte Arithmetik
NumPy wendet arithmetische Operationen elementweise auf ganze Arrays an, ohne Python-Schleifen zu verwenden – die Ausführung erfolgt in optimiertem C-Code.
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]
print(a ** 2) # [1 4 9]Universelle Funktionen (ufuncs)
Die ufuncs von NumPy wenden Funktionen auf C-Ebene elementweise an: np.sqrt, np.exp, np.log, np.sin usw.
import numpy as np
x = np.linspace(0, np.pi, 5)
print(np.sin(x)) # [0. 0.707 1. 0.707 0.]
print(np.exp([1.0, 2.0, 3.0])) # [2.718 7.389 20.086]Reduktionsoperationen
Reduzieren Sie ein Array mit np.sum, np.mean, np.max, np.min oder np.std auf einen Skalar oder ein Array mit weniger Dimensionen.
import numpy as np
m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(m)) # 21
print(np.sum(m, axis=0)) # [5 7 9] — sum each column
print(np.sum(m, axis=1)) # [6 15] — sum each rowBroadcasting-Regeln
Broadcasting erweitert kleinere Arrays auf die Größe größerer Arrays, ohne Daten zu kopieren. Regel: Dimensionen werden von rechts ausgerichtet; Dimensionen der Größe 1 werden erweitert.
import numpy as np
a = np.array([[1], [2], [3]]) # shape (3,1)
b = np.array([10, 20, 30]) # shape (3,)
print(a + b)
# [[11 21 31]
# [12 22 32]
# [13 23 33]]Broadcasting von Skalaroperationen
Ein Skalar wird auf alle Elemente des Arrays angewendet.
import numpy as np
arr = np.arange(6).reshape(2, 3)
print(arr + 10)
# [[10 11 12]
# [13 14 15]]
print(arr * 0.5)
# [[0. 0.5 1. ]
# [1.5 2. 2.5]]Vergleichs- und boolesche Operationen
Vergleiche erzeugen boolesche Arrays. Kombinieren Sie sie mit &, | und ~ (nicht mit Python and/or/not).
import numpy as np
arr = np.array([1, 5, 3, 8, 2])
print(arr > 3) # [False True False True False]
print(arr[(arr > 2) & (arr < 7)]) # [5 3]where()
np.where(condition, x, y) gibt die Elemente aus x zurück, wenn die Bedingung True ist, und aus y, wenn sie False ist.
import numpy as np
arr = np.array([-2, 3, -1, 4, 0])
result = np.where(arr >= 0, arr, 0) # clip negatives to 0
print(result) # [0 3 0 4 0]Aggregationen entlang von Achsen
Geben Sie axis= an, um entlang einer bestimmten Dimension eines mehrdimensionalen Arrays zu reduzieren.
import numpy as np
data = np.arange(12).reshape(3, 4)
print(data.mean(axis=0)) # mean of each column → shape (4,)
print(data.mean(axis=1)) # mean of each row → shape (3,)cumsum und diff
np.cumsum berechnet kumulative Summen; np.diff berechnet die Differenzen zwischen aufeinanderfolgenden Elementen.
import numpy as np
prices = np.array([100, 110, 105, 115])
print(np.cumsum(prices)) # [100 210 315 430]
print(np.diff(prices)) # [10 -5 10] (daily changes)Vektorisierte String-Operationen
np.char stellt vektorisierte String-Operationen für Arrays aus Strings bereit.
import numpy as np
words = np.array(["apple", "banana", "cherry"])
print(np.char.upper(words)) # ['APPLE' 'BANANA' 'CHERRY']
print(np.char.startswith(words, "a")) # [True False False]Leistung im Vergleich zu Python-Listen
NumPy ist bei numerischen Aufgaben 10- bis 100-mal schneller als entsprechende Python-Schleifen, da die Ausführung in C ohne den Overhead des Python-Interpreters erfolgt.
import numpy as np, time
n = 1_000_000
start = time.perf_counter()
python_sum = sum(i**2 for i in range(n))
print(f"Python: {time.perf_counter()-start:.3f}s")
arr = np.arange(n)
start = time.perf_counter()
numpy_sum = (arr**2).sum()
print(f"NumPy: {time.perf_counter()-start:.3f}s")Kurzer Test
Welche Shape hat das Ergebnis, wenn ein Array mit Shape (3,1) zu einem Array mit Shape (3,) addiert wird?
Zusammenfassung
NumPy-Operationen werden elementweise in C ausgeführt (ohne Python-Schleifen). Broadcasting erweitert kompatible Shapes, ohne Daten zu kopieren. Verwenden Sie axis= für Reduktionen entlang bestimmter Dimensionen. Ufuncs (np.sin, np.exp usw.) wenden Operationen mit C-Geschwindigkeit elementweise an.
Häufig gestellte Fragen
Ist die Lektion „Array-Operationen und Broadcasting“ kostenlos?
Ja — der vollständige Text von „Array-Operationen und Broadcasting“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Array-Operationen und Broadcasting“?
Führen Sie vektorisierte Arithmetik aus und verstehen Sie die Broadcasting-Regeln. Du übst Python Academy 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 Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy 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 2 von 4.
Wie lange dauert die Lektion „Array-Operationen und Broadcasting“?
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 Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-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
- NumPy-Arrays und dtypes
- Array-Operationen und Broadcasting
- Indizierung, Slicing und Fancy Indexing
- Lineare Algebra mit NumPy