Как сделать взвешенную случайную выборку категорий в python

Учитывая список кортежей, где каждый Кортеж состоит из вероятности и элемента, который я хотел бы выбрать в соответствии с его вероятностью. Например, приведите список [(.3, 'a'), (.4, 'b'), (.3, 'c')] Я хотел бы использовать выборку 'b' в 40% случаев.

Каков канонический способ сделать это в python?

Я просмотрел модуль random, который, похоже, не имеет подходящей функции, и numpy.random, который, хотя и имеет многочленную функцию, не кажется чтобы вернуть результаты в красивой форме для этой задачи. Я в основном ищу что-то вроде mnrnd в Matlab.

Большое спасибо.

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

27
задан ninjagecko 21 June 2011 в 22:44
поделиться