Broadcasting

Úvod do NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Úvod do broadcastingu

 

Graf znázorňující sčítání dvou polí s různými tvary

Úvod do NumPy

Broadcasting skaláru

Obrázek znázorňující přičtení čísla 2 k 2D poli  

Obrázek znázorňující přičtení pole samých dvojek (stejného tvaru) k 2D poli

Úvod do NumPy

Pravidla kompatibility

  • NumPy porovnává dimenze polí zprava doleva  

 

 

 

 

Graf aplikující pravidla kompatibility na tvary polí (10, 5) a (10, 1)

Úvod do NumPy

Pravidla kompatibility

  • NumPy porovnává dimenze polí zprava doleva
  • Dvě dimenze jsou kompatibilní, pokud...
    • Jedna z nich má délku jedna nebo
    • Mají stejnou délku
  • Všechny sady dimenzí musí být kompatibilní

 

Graf aplikující pravidla kompatibility na tvary polí (10, 5) a (10, 1)

Úvod do NumPy

Broadcastovatelné, nebo ne?

 

Broadcastovatelné tvary:

  • (10, 5) a (10, 1)
  • (10, 5) a (5, )

 

Nebroadcastovatelné tvary:

  • (10, 5) a (5, 10)
  • (10, 5) a (10, )
Úvod do NumPy

Broadcasting řádků

Pole s tvarem (2, 5) přičítané k poli s tvarem (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]])
Úvod do NumPy

Broadcasting řádků

 

 

Pole s tvarem (2, 5) přičítané k poli s tvarem (2, 5)

Úvod do NumPy

Nekompatibilní broadcasting

 

Graf znázorňující, že přičtení pole tvaru (2, 5) k poli tvaru (2,) způsobí 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,) 
Úvod do NumPy

Broadcasting sloupců

Graf znázorňující sčítání pole tvaru (2, 5) a pole tvaru (2, 1)

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]])
Úvod do NumPy

Broadcasting sloupců

 

 

Graf znázorňující roztažení jednosloupkového pole po sloupcích na tvar shodný s větším polem

Úvod do NumPy

Další operátory

Pole tvaru (2, 2) násobené polem tvaru (2, 1)

Od pole tvaru (2, 2) odečítané pole tvaru (2, )

Úvod do NumPy

Pojďme si procvičit!

Úvod do NumPy

Preparing Video For Download...