np.random fournit des générateurs de nombres aléatoires : uniforme, normal, choix dans une liste, permutations, etc. Essentiel en simulation, sampling, ML.
np.random.seed(42)Fixer le seed permet d'obtenir les mêmes nombres "aléatoires" à chaque exécution. Indispensable pour partager un notebook ou débugger un test.
Le seed est global : tout appel à np.random après le seed est déterministe jusqu'au prochain seed. En 2026, on préfère np.random.default_rng(42) (plus moderne, isolé).
np.random.rand(5) 5 valeurs uniformes dans [0, 1)
np.random.rand(3, 4) matrice 3×4 uniforme
np.random.randn(5) 5 valeurs N(0, 1) (loi normale standard)
np.random.normal(loc=100, scale=15, size=1000) N(μ=100, σ=15), 1000 tirages
np.random.uniform(0, 10, size=20) uniforme sur [0, 10)
np.random.randint(1, 100, size=5) entiers dans [1, 100)data = np.array(['a', 'b', 'c', 'd'])
np.random.choice(data, 3) 3 tirages avec remise
np.random.choice(data, 3, replace=False) sans remise
np.random.choice(data, 100, p=[0.5,0.2,0.2,0.1]) avec probas customnp.random.shuffle(arr) mélange EN PLACE
np.random.permutation(arr) renvoie une nouvelle copie mélangéenp.random.seed(42)
print('Uniforme:', np.random.rand(5))
print('Normale:', np.random.randn(5))
print('Entiers:', np.random.randint(1, 100, size=5))# Simuler un grand échantillon d'une loi normale
normale = np.random.normal(loc=100, scale=15, size=1000)
print('Moyenne échantillon:', np.mean(normale)) # ~ 100
print('Std échantillon:', np.std(normale)) # ~ 15Pour des QI (moyenne 100, écart-type 15), simuler 1000 valeurs avec np.random.normal donne un échantillon réaliste.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →