numpy生成离散概率分布

2024-06-30 14:52:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html#subclassing-rv-discrete上找到了一个代码示例,用于实现正态分布离散值的随机数生成器。确切的例子(毫不奇怪)运行得很好,但是如果我修改它只允许左尾或右尾结果,那么0左右的分布应该太低(bin zero应该包含更多的值)。我一定碰到了一个边界条件,但无法解决。我错过什么了吗?在

这是每个箱子随机数计数的结果:

np.bincount(rvs) [1082 2069 1833 1533 1199  837  644  376  218  111   55   20   12    7    2 2]

这是直方图:

enter image description here

^{pr2}$

Tags: 代码orghttp示例docsdochtmlstats
1条回答
网友
1楼 · 发布于 2024-06-30 14:52:41

我试图根据@user333700和@user235711的评论回答我自己的问题:

我在normdiscrete = ...之前插入到方法中

if tail == 'right':
    gridint = gridint[npointsh:]
    probs = probs[npointsh:]
    s = probs.sum()
    probs = probs / s
elif tail == 'left':
    gridint = gridint[0: npointsh]
    probs = probs[0: npointsh]
    s = probs.sum()
    probs = probs / s

得到的直方图enter image description hereenter image description here看起来更好:

相关问题 更多 >