Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 10 / Pratique

Broadcast et opérations vectorisées

Remplacer les boucles par des opérations sur tableaux.

◷ 14 minutesTravail sur votre machine

Diffuser sans boucle

import numpy as np
X = np.array([[1., 2.], [3., 4.], [5., 6.]])
print(X - np.array([3., 4.]))
# [[-2. -2.] [0. 0.] [2. 2.]]
print(X * 2 + 1)

Le vecteur [3., 4.] est diffusé sur les 3 lignes : pas de for, un seul appel C, 10 à 100 fois plus rapide. Règle : les dimensions se comparent depuis la droite, 1 ou manquant = diffusion.

Réflexe

Boucle sur lignes pour soustraire une moyenne ? Remplacez par X - X.mean(axis=0). Si les formes refusent de diffuser, c'est souvent une colonne mal orientée : reshape(-1, 1) vs reshape(1, -1).

Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.