微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

二项式 SciPy 语法

如何解决二项式 SciPy 语法

我正在尝试理解 SciPy 二项式,我在 scipy 手册上没有取得任何进展。

我可以用 NumPy random 模拟抛硬币。

import numpy as np

print('Simulating the result of a single fair coin flip ')
n = 1
p = 0.5
result = np.random.binomial(n,p)
if result == 1:
    print('1')
    print('Heads')
else:
    print('0')
    print('tails')

我也遇到过这个 NumPy 代码,它模拟了在 20000 次翻转中连续 6 个正面的随机概率

import numpy as np
simulation = sum(np.random.binomial(6,0.5,20000)==6)/20000
print(simulation)

但是我不想运行随机模拟,我想使​​用 SciPy 二项式向我显示二项式测试的实际概率,例如0.5 单次抛硬币

当我运行下面的 SciPy 代码

from scipy.stats import binom
n,p = 1,0.5

result = binom.stats(n,p)

print(result)

我得到了这个结果

(array(0.5),array(0.25))

谁能帮助解释我如何正确使用 SciPy 来获得 0.5 的单次抛硬币结果,以及我需要的任何其他语法来计算如何使用 SciPy 显示 20000 次抛硬币中 5 次正面的二项式概率。>

我意识到还有其他数学方法可以做到这一点,但我正在努力学习 SciPy。

解决方法

您需要的是概率质量函数,pmf。根据{{​​3}}:

在概率和统计中,概率质量函数 (PMF) 是 给出离散随机变量的概率的函数 完全等于某个值。

因此,在您的示例中,要获得 0 的概率,当结果可以是 0 或 1 时,概率为 0.5:

binom.pmf(0,1,0.5)
0.5

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。