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

时间:2017-05-17 20:27:48

标签: python-3.x scipy probability function-call

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

enter image description here

我试图遵循这个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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

您可以为此使用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)