小编典典

使用SciPy或NumPy生成具有指定权重的离散随机变量

python

我正在寻找一个简单的函数,该函数可以根据相应的(也指定的)概率生成指定的随机值数组。我只需要它来生成浮点值,但我不明白为什么它不应该能够生成任何标量。我可以想到许多通过现有功能构建此功能的方法,但是我想我可能只是错过了明显的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,请为我提供一个简单的示例并解释上述“ shape”语句吗?


阅读 189

收藏
2020-12-20

共1个答案

小编典典

来自离散分布的图形直接内置到numpy中。该函数称为random.choice(很难找到,而无需参考numpy文档中的离散分布)。

elements = [1.1, 2.2, 3.3]
probabilities = [0.2, 0.5, 0.3]
np.random.choice(elements, 10, p=probabilities)
2020-12-20