Broadcasting

Introduction à NumPy

Izzy Weber

Core Curriculum Manager, DataCamp

Introduction au broadcasting

 

Schéma montrant deux tableaux de formes différentes additionnés

Introduction à NumPy

Broadcasting d’un scalaire

Image montrant un tableau 2D additionné au nombre 2  

Image montrant un tableau 2D additionné à un tableau de mêmes dimensions rempli de deux

Introduction à NumPy

Règles de compatibilité

  • NumPy compare les ensembles de dimensions de droite à gauche  

 

 

 

 

Schéma appliquant les règles de compatibilité aux formes (10, 5) et (10, 1)

Introduction à NumPy

Règles de compatibilité

  • NumPy compare les ensembles de dimensions de droite à gauche
  • Deux dimensions sont compatibles si…
    • L’une d’elles vaut un ou
    • Elles ont la même longueur
  • Tous les ensembles doivent être compatibles

 

Schéma appliquant les règles de compatibilité aux formes (10, 5) et (10, 1)

Introduction à NumPy

Broadcastable ou non ?

 

Formes broadcastables :

  • (10, 5) et (10, 1)
  • (10, 5) et (5, )

 

Formes non broadcastables :

  • (10, 5) et (5, 10)
  • (10, 5) et (10, )
Introduction à NumPy

Broadcasting par lignes

Un tableau de forme (2, 5) ajouté à un tableau de forme (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]])
Introduction à NumPy

Broadcasting par lignes

 

 

Un tableau de forme (2, 5) ajouté à un tableau de forme (2, 5)

Introduction à NumPy

Broadcasting incompatible

 

Un schéma montrant que l’addition d’un tableau de forme (2, 5) avec un de forme (2,) génère une 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,) 
Introduction à NumPy

Broadcasting par colonnes

Schéma montrant l’addition d’un tableau de forme (2, 5) et d’un de forme (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]])
Introduction à NumPy

Broadcasting par colonnes

 

 

Schéma montrant la colonne unique étendue par colonnes sur un tableau de même forme que le plus grand

Introduction à NumPy

Autres opérateurs

Un tableau de forme (2, 2) multiplié par un tableau de forme (2, 1)

Un tableau de forme (2,) soustrait d’un tableau de forme (2, 2)

Introduction à NumPy

Passons à la pratique !

Introduction à NumPy

Preparing Video For Download...