Broadcasting

Introductie tot NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Introductie tot broadcasting

 

Een afbeelding van twee arrays met verschillende vormen die bij elkaar worden opgeteld

Introductie tot NumPy

Een scalar broadcasten

Afbeelding van een 2D-array die wordt opgeteld bij het getal 2  

Afbeelding van een 2D-array die wordt opgeteld bij een array vol tweeën met dezelfde vorm

Introductie tot NumPy

Compatibiliteitsregels

  • NumPy vergelijkt sets array-dimensies van rechts naar links  

 

 

 

 

Een grafiek die de compatibiliteitsregels toepast op arrayvormen (10, 5) en (10, 1)

Introductie tot NumPy

Compatibiliteitsregels

  • NumPy vergelijkt sets array-dimensies van rechts naar links
  • Twee dimensies zijn compatibel als...
    • Eén van beide lengte één heeft of
    • Ze even lang zijn
  • Alle dimensiesets moeten compatibel zijn

 

Een grafiek die de compatibiliteitsregels toepast op arrayvormen (10, 5) en (10, 1)

Introductie tot NumPy

Broadcastbaar of niet?

 

Broadcastbare vormen:

  • (10, 5) en (10, 1)
  • (10, 5) en (5, )

 

Niet-broadcastbare vormen:

  • (10, 5) en (5, 10)
  • (10, 5) en (10, )
Introductie tot NumPy

Rijen broadcasten

Een array met vorm (2, 5) die wordt opgeteld bij een array met vorm (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]])
Introductie tot NumPy

Rijen broadcasten

 

 

Een array met vorm (2, 5) die wordt opgeteld bij een array met vorm (2, 5)

Introductie tot NumPy

Onverenigbare broadcasting

 

Een afbeelding die laat zien dat het optellen van een array met vorm (2, 5) bij een met vorm (2,) een ValueError oplevert.

 

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

Kolommen broadcasten

Een afbeelding van een array met vorm (2, 5) en een met vorm (2, 1) die bij elkaar worden opgeteld

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]])
Introductie tot NumPy

Kolommen broadcasten

 

 

Een afbeelding die laat zien dat de éénkolomsarray kolomsgewijs wordt uitgerekt over een array met dezelfde vorm als de grotere array

Introductie tot NumPy

Andere operatoren

Een array met vorm (2, 2) die wordt vermenigvuldigd met een array met vorm (2, 1)

Een array met vorm (2, ) die wordt afgetrokken van een array met vorm (2, 2)

Introductie tot NumPy

Laten we oefenen!

Introductie tot NumPy

Preparing Video For Download...