Broadcasting

Introduktion till NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Introduktion till broadcasting

 

En grafik som visar att två arrayer med olika former adderas

Introduktion till NumPy

Broadcasting med en skalär

Bild som visar en 2D-array som adderas med talet 2  

Bild som visar en 2D-array som adderas med en array fylld med tvåor och samma form

Introduktion till NumPy

Kompatibilitetsregler

  • NumPy jämför arrayernas dimensioner från höger till vänster  

 

 

 

 

En grafik som tillämpar kompatibilitetsreglerna på arrayformer (10, 5) och (10, 1)

Introduktion till NumPy

Kompatibilitetsregler

  • NumPy jämför arrayernas dimensioner från höger till vänster
  • Två dimensioner är kompatibla när...
    • En av dem har längden ett, eller
    • De har samma längd
  • Alla dimensionspar måste vara kompatibla

 

En grafik som tillämpar kompatibilitetsreglerna på arrayformer (10, 5) och (10, 1)

Introduktion till NumPy

Kan broadcastas eller inte?

 

Former som kan broadcastas:

  • (10, 5) och (10, 1)
  • (10, 5) och (5, )

 

Former som inte kan broadcastas:

  • (10, 5) och (5, 10)
  • (10, 5) och (10, )
Introduktion till NumPy

Broadcasting radvis

En array med formen (2, 5) som adderas med en array med formen (1, 5)

 

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]])
Introduktion till NumPy

Broadcasting radvis

 

 

En array med formen (2, 5) som adderas med en array med formen (2, 5)

Introduktion till NumPy

Inkompatibel broadcasting

 

En grafik som visar att addition av en array med formen (2, 5) och en med formen (2,) ger ett ValueError.

 

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

Broadcasting kolumnvis

En grafik som visar att en array med formen (2, 5) och en med formen (2, 1) adderas

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]])
Introduktion till NumPy

Broadcasting kolumnvis

 

 

En grafik som visar att en-kolumn-arrayen sträcks ut kolumnvis till samma form som den större arrayen

Introduktion till NumPy

Andra operatorer

En array med formen (2, 2) multipliceras med en array med formen (2, 1)

En array med formen (2, ) subtraheras från en array med formen (2, 2)

Introduktion till NumPy

Nu kör vi en övning!

Introduktion till NumPy

Preparing Video For Download...