Broadcasting

Introducere în NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Introducere în broadcasting

 

Grafic care arată două array-uri cu forme diferite adăugate împreună

Introducere în NumPy

Broadcasting unui scalar

Imagine care arată un array 2D adăugat la numărul 2  

Imagine care arată un array 2D adăugat la un array plin de doi cu aceeași formă

Introducere în NumPy

Reguli de compatibilitate

  • NumPy compară dimensiunile array-urilor de la dreapta la stânga  

 

 

 

 

Grafic care aplică regulile de compatibilitate pentru forme (10, 5) și (10, 1)

Introducere în NumPy

Reguli de compatibilitate

  • NumPy compară dimensiunile array-urilor de la dreapta la stânga
  • Două dimensiuni sunt compatibile când...
    • Una dintre ele are lungimea unu sau
    • Au lungimi egale
  • Toate seturile de dimensiuni trebuie să fie compatibile

 

Grafic care aplică regulile de compatibilitate pentru forme (10, 5) și (10, 1)

Introducere în NumPy

Compatibil sau nu?

 

Forme compatibile pentru broadcasting:

  • (10, 5) și (10, 1)
  • (10, 5) și (5, )

 

Forme incompatibile pentru broadcasting:

  • (10, 5) și (5, 10)
  • (10, 5) și (10, )
Introducere în NumPy

Broadcasting pe linii

Un array de forma (2, 5) adăugat la un array de forma (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]])
Introducere în NumPy

Broadcasting pe linii

 

 

Un array de forma (2, 5) adăugat la un array de forma (2, 5)

Introducere în NumPy

Broadcasting incompatibil

 

Grafic care arată că adăugarea unui array de forma (2, 5) la unul de forma (2,) generează o 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,) 
Introducere în NumPy

Broadcasting pe coloane

Grafic care arată un array de forma (2, 5) și unul de forma (2, 1) adăugate împreună

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]])
Introducere în NumPy

Broadcasting pe coloane

 

 

Grafic care arată array-ul cu o singură coloană extins pe coloane la forma array-ului mai mare

Introducere în NumPy

Alți operatori

Un array de forma (2, 2) înmulțit cu un array de forma (2, 1)

Un array de forma (2, ) scăzut dintr-un array de forma (2, 2)

Introducere în NumPy

Să exersăm!

Introducere în NumPy

Preparing Video For Download...