首页 > 解决方案 > 在 python 中使用 stats 进行二项分布的随机实验

问题描述

模拟掷硬币 10000 次的随机实验,并确定正面数。提示:用和
定义二项分布。 使用scipy.stats 中的 binom 函数。 将随机种子设置为。 从定义的分布中抽取元素样本。 假设值并分别表示 Heads 和 Tails。 计算正面的数量并显示出来。利用方法,可在. n = 1p = 0.5

1
10000
01
bincountnumpy

我找到了答案,但它不是来自scipy.stats所要求的包,而是来自随机包。以下是我的尝试,但答案并不如预期。请帮助我纠正我的错误。

import scipy as sp
from scipy import stats
import numpy as np
import random

from scipy.stats import binom
data_binom = binom.rvs(n=1,p=0.5,size=10000)

np.random.seed(1)

#print(data_binom)

y = np.bincount(data_binom)
head = print(y[0])
print(head)

标签: pythonnumpystatisticsdata-science

解决方案


似乎问题在于您在哪里设置种子。目前您正在发布您的样本选择,理想情况下应该在之前完成,如下所示:

import scipy as sp
from scipy import stats
import numpy as np
from scipy.stats import binom

np.random.seed(1)

data_binom = binom.rvs(n=1,p=0.5,size=10000)
#print(data_binom)

y = np.bincount(data_binom)
head = print(y[0])
print(head)

猜猜这就是您的预期输出。干杯!!


推荐阅读