← retour aux snippets

numpy: random.choice avec p

Échantillonner avec probabilités personnalisées.

python numpy #numpy#random#choice

objectif

Échantillonner avec probabilités personnalisées.

code minimal

import numpy as np
rng = np.random.default_rng(0)
print(sorted(rng.choice([0,1], size=5, p=[0.7,0.3]).tolist()))

utilisation

import numpy as np
rng = np.random.default_rng(1)
vals = rng.choice(["a","b","c"], size=1000, p=[0.1,0.2,0.7])
print(len(vals) == 1000)

variante(s) utile(s)

import numpy as np
rng = np.random.default_rng(2)
print(rng.choice(5, size=3, replace=False).size == 3)

notes

  • replace=False pour échantillonnage sans remise.