La même idée, deux façons
Imagine une liste de mesures, et tu veux toutes les doubler. Avec une liste Python ordinaire, tu écris une boucle qui traite les nombres un par un. Avec un tableau numpy, tu écris simplement tableau * 2 : numpy s'occupe de tout le reste.
On appelle ça vectoriser : faire d'un seul geste ce que la boucle ferait élément par élément.
Compare en direct
Choisis un calcul à appliquer à la liste nombres = [3, 8, 1, 6, 4] et regarde les deux versions.
Avec une liste : la boucle
Avec numpy : d'un coup
Pourquoi vectoriser, vraiment
- Plus court et plus clair : une ligne au lieu de trois ou quatre. Tu lis l'intention, pas la mécanique.
- Beaucoup plus rapide sur de grandes données : numpy fait la boucle à l'intérieur, en code optimisé. Sur un million de mesures, la différence est énorme.
- Ça compose : tu enchaînes les opérations comme en maths,
(mesures - moyenne) / ecarts'applique à tout le tableau.
Ce que numpy fait sur tout le tableau
| Tu écris | Effet sur le tableau |
|---|---|
tableau + 10 | Ajoute 10 à chaque valeur |
tableau * 2 | Double chaque valeur |
tableau ** 2 | Met chaque valeur au carré |
tableau > 5 | Donne un tableau de Vrai/Faux, valeur par valeur |
np.sqrt(tableau) | Racine carrée de chaque valeur |
np.mean(tableau) | La moyenne de tout le tableau (un seul nombre) |
np.sum(tableau) | La somme de toutes les valeurs |
Pour démarrer : import numpy as np puis tableau = np.array([3, 8, 1, 6, 4]). Les colonnes de pandas (tes fichiers CSV) sont des tableaux numpy déguisés : tout ceci marche aussi sur elles.
Le piège qui surprend tout le monde
Une liste Python et un tableau numpy ne réagissent pas pareil au * 2 :
# Une liste ordinaire : * 2 la RÉPÈTE [3, 8, 1] * 2 # → [3, 8, 1, 3, 8, 1] # Un tableau numpy : * 2 DOUBLE les valeurs np.array([3, 8, 1]) * 2 # → [6, 16, 2]
⚠️ À retenir
Si ton * 2 rallonge la liste au lieu de doubler les nombres, c'est que tu travailles sur une liste, pas sur un tableau numpy. Transforme-la d'abord avec np.array(...).