Python中具有给定PDF的随机数

霍曼

我想使用列表给出的概率分布函数生成一个整数随机数。例如,如果pdf = [3,2,1],那么我喜欢rndWDist(pdf)返回0,1和2,概率分别为3 / 6、2 / 6和1/6。我为此编写了自己的函数,因为在随机模块中找不到它。

def randintWDist(pdf):
    cdf=[]
    for x in pdf:
        if cdf:
            cdf.append(cdf[-1]+x)
        else:
            cdf.append(x)
    a=random.randint(1,cdf[-1])
    i=0
    while cdf[i]<a:
        i=i+1
    return i

有没有更短的方法可以达到相同的结果?

梅珀尔

这是一个重复的问题:生成具有给定(数字)分布的随机数

作为第一个答案,建议您使用scipy.stats.rv_discrete

您可能会这样使用它:

from scipy.stats import rv_discrete
numbers = (1,2,3)
distribution = (1./6, 2./6, 3./6)
random_variable = rv_discrete(values=(numbers,distribution))
random_variable.rvs(size=10)

这将返回一个具有10个随机值的numpy数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中具有给定PDF的随机数

来自分类Dev

Haskell中具有给定种子的随机数质量

来自分类Dev

如何在Ruby中获得具有给定离散分布的随机数

来自分类Dev

R中具有多种条件的随机数生成

来自分类Dev

在给定间隔内生成具有数字分布的随机数

来自分类Dev

具有概率的随机数

来自分类Dev

具有不同输出的随机数

来自分类Dev

如何在python中具有特定平均值的范围内生成随机数?

来自分类Dev

来自结构C中给定数的随机数

来自分类Dev

Python中的全范围随机数

来自分类Dev

在Python中绘制随机数

来自分类Dev

选择系列中的随机数(python)

来自分类Dev

Python中的全范围随机数

来自分类Dev

限制Python中的随机数生成

来自分类Dev

随机数在python中连续

来自分类Dev

在Python 3.4中生成带有重复项的随机数随机列表

来自分类Dev

在Python 3.4中生成带有重复项的随机数随机列表

来自分类Dev

在python中生成具有加权概率的随机数

来自分类Dev

创建一个在每一列中具有随机数的数据框

来自分类Dev

C#中具有随机数的2d数组

来自分类Dev

Excel中具有固定总和的特定范围内的随机数

来自分类Dev

创建具有左偏概率分布的随机数

来自分类Dev

生成具有固定位数长度的随机数?

来自分类Dev

具有特定数量的特定值的随机数

来自分类Dev

生成具有固定概率的随机数

来自分类Dev

具有加权概率的Javascript随机数

来自分类Dev

如何生成具有正z轴的随机数?

来自分类Dev

生成具有定义的数据类型的随机数

来自分类Dev

具有加权概率的Javascript随机数