我正在寻找一个简单函数,该函数可以基于它们相应的(也是指定的)概率生成指定的随机值数组。我只需要它来生成浮点值,但我不明白为什么它不应该能够生成任何标量。我可以从现有函数中想出很多构建这种方法的方法,但我想我可能只是错过了一个明显的SciPy或NumPy函数。使用SciPy或NumPy生成具有指定权重的离散随机变量
例如为:
>>> 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)
注:我发现scipy.stats.rv_discrete,但我不明白它是如何工作的。具体地讲,我不明白这是什么(下)意味着它也不应该做的:
numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs
如果rv_discrete是我应该使用的是什么,请你为我提供了一个简单的例子和上面的“的解释形状“声明?
大!但是,正确的语法是:np.random.choice(元素,10,p = list(概率)) – Sina 2016-02-01 03:13:39
不错。我认为这个版本在我发布我的原始问题后出来了(我认为这是我第一次在1.7.0发布,我相信这是在2013年发布的)。 – TimY 2016-07-22 09:01:40
非常好!似乎工作也没有强制列表:np.random。选择(元素,10,p =概率))。 – zeycus 2016-07-26 17:37:10