ConsigneGénère des nombres aléatoires et des échantillons avec np.random
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 uniformenp.random.randn(5) 5 valeurs N(0, 1) (loi normale standard)np.random.normal(loc=100, scale=15, size=1000) N(μ=100, σ=15), 1000 tiragesnp.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 remisenp.random.choice(data, 3, replace=False) sans remisenp.random.choice(data, 100, p=[0.5,0.2,0.2,0.1]) avec probas customnp.random.shuffle(arr) mélange EN PLACEnp.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 normalenormale = np.random.normal(loc=100, scale=15, size=1000)print('Moyenne échantillon:', np.mean(normale)) # ~ 100print('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 →