Categories
Python Answers

How to get a weighted random selection with and without replacement with Python?

Spread the love

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.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *