Idée
Multiplier un tableau par un nombre seul, comme 2*A, c'est multiplier chaque case par ce nombre.
Pourquoi
Multiplier un tableau par un nombre seul, comme 2*A, c'est multiplier chaque case par ce nombre. Le scalaire se propage à toutes les cases sans qu'on ait à écrire de boucle. C'est le cas le plus simple d'un mécanisme général qui étend l'opération quand les formes ne coïncident pas exactement.
Outil
Comme la multiplication d'un vecteur par un scalaire $\lambda \cdot v = (\lambda v_1, \ldots, \lambda v_n)$ en algèbre linéaire — sauf qu'ici ça marche aussi pour les matrices et les tenseurs.
Formule
Cell 17 illustre le broadcasting d'une fonction Numpy sur un tableau. Sans regarder, donner la forme (shape et dtype, pas les valeurs numériques) de la sortie.
Piège
Quand on écrit A + 2, on visualise mentalement un tableau [2,2,2] créé puis additionné. Numpy ne crée PAS ce tableau : il itère à la volée avec un seul scalaire. Pour de gros tableaux, c'est crucial : la version conceptuelle 'naïve' aurait double consommation mémoire ; la version Numpy reste constante. Conséquence pratique : on peut additionner un scalaire à une matrice de 1 milliard d'éléments sans problème.