numpy - случайная выборка, пропорциональная значениям

У меня есть числовые значения массива и еще один вес массива. Каков наиболее эффективный способ выборки из значений, пропорциональных весовым значениям? Например:

values = [1,5,6]
weights = [2,3,5]

Следует пробовать 1 - 20%, 5-30% и 6-50% времени.

В настоящее время я делаю это таким образом, но уверен, что есть более элегантный способ.

import random
sample = random.random()
thresh = weights.cumsum() / weights.sum()
for i in range(len(values)):
    if thresh[i] < sample:
        return values[i]

0 ответов

Другие вопросы по тегам