Aller au contenu
Data (pandas / numpy)

numpy — tableaux

numpy fournit des tableaux numériques rapides où chaque opération s'applique à tous les éléments à la fois. C'est le moteur de pandas et de scikit-learn, utile pour calculer sur des séries de nombres.

  • numpy
  • array
  • vectorisation
  • broadcasting
  • axis
  • masque

Syntaxe

Modèle
import numpy as npa = np.array([...])   np.arange(debut, fin, pas)   np.zeros((lignes, colonnes))a * 2   a[a > seuil]   a.mean(axis=0)   a.reshape(lignes, colonnes)

Exemple

Exemple concret
import numpy as np# Notes de 3 élèves (lignes) sur 4 devoirs (colonnes)notes = np.array([[12, 15, 9, 14],                  [8, 10, 11, 7],                  [17, 16, 18, 19]])print(notes.shape)                    # → (3, 4)print(notes.mean(axis=1))             # → [12.5  9.  17.5]print(notes.mean(axis=0).round(1))    # → [12.3 13.7 12.7 13.3]coefs = np.array([1, 1, 2, 2])        # forme (4,) diffusée sur chaque ligneprint(((notes * coefs).sum(axis=1) / coefs.sum()).round(2))  # → [12.17  9.   17.83]print((notes >= 10).sum())            # → 9print(notes[notes < 10])              # → [9 8 7]

À retenir

  1. axis=0 agrège en descendant les lignes et donne un résultat par colonne ; axis=1 donne un résultat par ligne. Repère : l'axe indiqué est celui qui disparaît du résultat.
  2. Broadcasting : un tableau de forme (4,) s'aligne sur chaque ligne d'un tableau (3, 4), et un scalaire sur tous les éléments. Les dimensions sont comparées en partant de la droite et doivent être égales ou valoir 1.
  3. Piège : un tableau numpy n'a qu'un seul type. np.array([1, "2"]) devient un tableau de chaînes et les calculs échouent ; et un entier int64 peut déborder sans erreur, contrairement aux int Python.
  4. Les masques booléens filtrent sans boucle : a[(a > 10) & (a < 15)]. Utilisez & et | avec des parenthèses, jamais and et or.
  5. Piège : une tranche a[1:3] est une vue sur les mêmes données, pas une copie ; la modifier modifie le tableau d'origine. Utilisez a[1:3].copy() pour travailler à part.

Voir aussi