Python 中二项分布的概率质量函数

Probability Mass Function of a Binomial Distribution in Python

我正在使用 Python3 来计算这个维基百科示例的概率质量函数 (PMF):

我尝试遵循此 scipy 文档:

https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.stats.binom.html

文档中明确指出:

Notes

The probability mass function for binom is:

binom.pmf(k) = choose(n, k) * p**k * (1-p)**(n-k)

for k in {0, 1,..., n}.

binom takes n and p as shape parameters.

好吧,我在考虑维基百科示例的情况下尝试实现这一点。这是我的代码:

from scipy.stats import binom

n = 6

p = 0.3

binom.pmf(k) = choose(n, k) * p**k * (1-p)**(n-k)

print  (binom.pmf(1))

但是,我收到此错误消息:

  File "binomial-oab.py", line 7
    binom.pmf(k) = choose(n, k) * p**k * (1-p)**(n-k)
    ^
SyntaxError: can't assign to function call

我该如何解决这个问题?

只需致电 binom.pmf(1, n, p) 即可获得 k=1 的结果。文档中的表达式只是向您展示 PMF 是如何在数学上定义的,而不是您期望执行的实际代码片段。

您可以为此使用 scipy.stats.binom.pmf(k)。例如:

n = 10
p = 0.3
k = np.arange(0,21)
binomial = scipy.stats.binom.pmf(k,n,p)
print(binomial)