Gerando Variáveis ​​Aleatórias Discretas com Pesos Especificados Usando SciPy ou NumPy

Eu estou procurando uma função simples que pode gerar uma matriz de valores aleatórios especificados com base em suas probabilidades correspondentes (também especificadas). Eu só preciso disso para gerar valores float, mas não vejo por que ele não deveria ser capaz de gerar escalar. Posso pensar em muitas maneiras de construir isso a partir de funções existentes, mas acho que provavelmente perdi uma função SciPy ou NumPy óbvia.

Por exemplo.:

>>> values = [1.1, 2.2, 3.3]
>>> probabilities = [0.2, 0.5, 0.3]
>>> print some_function(values, probabilities, size=10)
(2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2)

Nota: eu encontreiscipy.stats.rv_discrete mas eu não entendo como isso funciona. Especificamente, não entendo o que isso (abaixo) significa nem o que deveria fazer:

numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs

Se rv_discrete é o que eu deveria estar usando, você poderia me fornecer um exemplo simples e uma explicação da declaração "shape" acima?

questionAnswers(5)

yourAnswerToTheQuestion