如何在Python中计算正态分布中给定平均值的概率?我总是可以根据定义显式地编写自己的函数,就像这个问题中的OP一样:Calculating Probability of a Random Variable in a Distribution in Python
只是想知道是否有一个库函数调用将允许您这样做。在我的想象中,它是这样的:
nd = NormalDistribution(mu=100, std=12)
p = nd.prob(98)
Perl中有一个类似的问题:How can I compute the probability at a point given a normal distribution in Perl?。但是我在Python中没有看到一个
Numpy
有一个random.normal
函数,但它就像采样一样,不完全是我想要的
Scipy.stats是一个很棒的模块。为了提供另一种方法,您可以直接使用
这使用了这里的公式:http://en.wikipedia.org/wiki/Normal_distribution#Probability_density_function
要测试:
这里是more info。 首先,您要处理一个冻结的分布(在本例中,冻结意味着其参数设置为特定值)。要创建冻结的分发,请执行以下操作:
在scipy.stats中有一个:
[需要注意的一件事——只是一个提示——是参数传递有点广泛。由于代码的设置方式,如果您意外地编写了
scipy.stats.norm(mean=100, std=12)
而不是scipy.stats.norm(100, 12)
或scipy.stats.norm(loc=100, scale=12)
,那么它将接受它,但会默默地放弃这些额外的关键字参数,并为您提供默认值(0,1)。]相关问题 更多 >
编程相关推荐