Broadcasting

Einführung in NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Broadcasting-Einführung

 

Eine Grafik, die zeigt, wie zwei Arrays mit unterschiedlichen Formen addiert werden

Einführung in NumPy

Broadcasting mit Skalaren

Bild, das zeigt, wie eine 2D-Matrix zur Zahl 2 hinzugefügt wird  

Bild, das zeigt, wie ein 2D-Array zu einem Array voller Zweien mit derselben Form hinzugefügt wird

Einführung in NumPy

Kompatibilitätsregeln

  • NumPy vergleicht Array-Dimensionen von rechts nach links  

 

 

 

 

Eine Grafik, die die Kompatibilitätsregeln auf Array-Formen von (10, 5 und (10, 1)) anwendet

Einführung in NumPy

Kompatibilitätsregeln

  • NumPy vergleicht Array-Dimensionen von rechts nach links
  • Zwei Dimensionen sind kompatibel, wenn...
    • Eine davon eine Länge von eins aufweist, oder
    • Beide gleich lang sind
  • Alle Dimensionenpaare müssen kompatibel sein

 

Eine Grafik, die die Kompatibilitätsregeln auf Array-Formen von (10, 5 und (10, 1)) anwendet

Einführung in NumPy

Broadcasting-tauglich oder nicht?

 

Broadcasting-taugliche Strukturen:

  • (10, 5) und (10, 1)
  • und (10, 5)

 

Nicht-Broadcasting-taugliche Strukturen:

  • (10, 5) und (5, 10)
  • (10, 5) und (10, )
Einführung in NumPy

Broadcasting mit Zeilen

Ein Array mit der Form (2, 5) wird zu einem Array mit der Form (1, 5) hinzugefügt.

 

array = np.arange(10).reshape((2, 5))
array + np.array([0, 1, 2, 3, 4])
array([[ 0,  2,  4,  6,  8],
       [ 5,  7,  9, 11, 13]])
Einführung in NumPy

Broadcasting mit Zeilen

 

 

Ein Array mit der Form (2, 5) wird zu einem Array mit der Form (2, 5) hinzugefügt.

Einführung in NumPy

Nicht kompatibles Broadcasting

 

Ein Diagramm, das zeigt, dass das Hinzufügen eines Arrays der Form (2, 5) zu einem Array der Form (2,) einen ValueError erzeugt.

 

array = np.arange(10).reshape((2, 5))
array + np.array([0, 1])
ValueError: operands could not be broadcast together with shapes (2,5) (2,) 
Einführung in NumPy

Broadcasting mit Spalten

Eine Grafik, die zeigt, wie ein Array der Form (2, 5) und eins der Form (2, 1) zusammengezählt werden.

array = np.arange(10).reshape((2, 5))
array + np.array([0, 1]).reshape((2, 1))
array([[ 0,  1,  2,  3,  4],
       [ 6,  7,  8,  9, 10]])
Einführung in NumPy

Broadcasting mit Spalten

 

 

Eine Grafik, die zeigt, wie eine einspaltige Anordnung in Spalten über eine Anordnung mit der gleichen Form wie die größere Anordnung gestreckt wird.

Einführung in NumPy

Weitere Operatoren

Ein Array mit der Struktur (2, 2) wird mit einem Array mit der Struktur (2, 1) multipliziert

Ein Array mit der Struktur (2, ) wird von einem Array mit der Struktur (2, 2) abgezogen

Einführung in NumPy

Lass uns üben!

Einführung in NumPy

Preparing Video For Download...