随机数模块
生成服从特定统计规律的随机数序列.
二项分布(binomial)
二项分布是重复n次独立试验的伯努利试验. 每次试验只有两种可能的结果, 而且两种结果发生与否相互独立相互对立. 事件发生与否的概率在每一次独立试验中都保持不变.
# 产生size个随机数, 每个随机数来自n次尝试中的成功
# 的次数, 其中每次尝试成功的概率为p
# 这样产生的随机数即符合二项分布规律.
np.random.binomial(n, p, size)
案例: 某人投篮命中率0.3, 投10次, 进5个的概率.
# 某人投篮命中率0.3, 投10次, 进5个的概率.
r = np.random.binomial(10, 0.3, 100000)
p = (r==5).sum() / r.size
print(p)
超几何分布
# 产生size个随机数, 每个随机数为在总样本中随机抽取
# nsample个样本后,好样本的个数.
# 总样本由ngood个好样本和nbad个坏样本组成.
np.random.hypergeometric(
ngood, nbad, nsample, size)
案例: 7个好苹果, 3个坏苹果, 抽出3个苹果, 求抽出2个好苹果的概率.
# 7个好苹果, 3个坏苹果, 抽出3个苹果,
# 求抽出2个好苹果的概率
r = np.random.hypergeometric(7, 3, 3, 100000)
p = (r==2).sum() / r.size
print(p)
正态分布(normal)
# 产生符合标准正态分布的size个随机数
# 期望=0, 标准差=1
np.random.normal(size)
# 产生符合正态分布的size个随机数
# 期望=1, 标准差=10
np.random.normal(loc=1, scale=10, size)