Les statistiques descriptives résument un échantillon. Avec scipy + numpy, on accède à toutes les mesures classiques + des indicateurs de forme (skewness, kurtosis).
Import
import numpy as np
from scipy import statsnp.mean(data) moyenne
np.median(data) médiane
stats.mode(data, keepdims=True).mode[0] mode (valeur la plus fréquente)np.std(data, ddof=1) écart-type d'échantillon (divise par n-1)
np.var(data, ddof=1) variance d'échantillon
stats.iqr(data) IQR = Q3 - Q1 (interquartile range)
np.ptp(data) étendue (max - min)ddof=1 (degrees of freedom = 1) est la convention pour les échantillons. Sans ddof, NumPy divise par n (population). Pour des données réelles : presque toujours ddof=1.
stats.skew(data) asymétrie
> 0 : queue à droite (distribution étalée vers les grandes valeurs)
< 0 : queue à gauche
= 0 : symétrique (loi normale = 0)stats.kurtosis(data) aplatissement (Fisher : 0 = normale)
> 0 : queues plus épaisses qu'une normale (valeurs extrêmes plus fréquentes)
< 0 : queues plus finesdata = np.array([23, 25, 28, 30, 32, 35, 22, 27, 31, 29, 26, 33, 24, 28, 30])print('Moyenne:', np.mean(data))
print('Médiane:', np.median(data))
print('Mode:', stats.mode(data, keepdims=True).mode[0])
print('Écart-type:', np.std(data, ddof=1))
print('Skewness:', stats.skew(data))
print('Kurtosis:', stats.kurtosis(data))
print('IQR:', stats.iqr(data))Si skewness ≈ 0 et kurtosis ≈ 0, la distribution est proche d'une normale. Sinon, certains tests statistiques (t-test) peuvent être moins fiables.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →