Random choice
Weighted random choice
A weighted version of random.choice
Как реализовать на [numpy]
Специальный метод numpy.random.choice
, например с нечисловыми объектами
aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random
dtype='<U11')
Мы задаем array-like объект, число чейзов на выходе и вероятности выбора из последовательности. На выходе получаем numpy array. Способ может быть проблематичным, когда объекты не хешируются или имеют разные типы.
Другой способо - использовать random.choices
random.choices(population, weights=None, *, cum_weights=None, k=1)
Вот тут с примерами: [2021-11-30-daily-note]