>>> На главную <<<

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)

В сущности тоже самое, разница только в том, что из-за отсутствия типизации может быть небыстро.

>>> На главную <<<