Sometimes, we want to get a weighted random selection with and without replacement with Python.
In this article, we’ll look at how to get a weighted random selection with and without replacement with Python.
How to get a weighted random selection with and without replacement with Python?
To get a weighted random selection with and without replacement with Python, we can use NumPy’s random
module.
For instance, we write:
import numpy.random as rnd
sampling_size = 3
domain = ['white', 'blue', 'black', 'yellow', 'green']
probs = [.1, .2, .4, .1, .2]
sample = rnd.choice(domain, size=sampling_size, replace=False, p=probs)
print(sample)
We have a list of choices to choose from from the domain
list.
probs
has the probability of each value being chosen.
Next, we call rnd.choice
with the domain
, size
, replace
and p
.
size
is the number of choices to make.
replace
set to False
means the chosen item won’t be a choice again.
And p
is the probabilities of each item being chosen.
Therefore, sample
is something like ['green' 'blue' 'yellow']
.
Conclusion
To get a weighted random selection with and without replacement with Python, we can use NumPy’s random
module.