随机数模块(random)
生成服从特定统计规律的随机数序列。
二项分布(binomial)
二项分布就是重复n次独立事件的伯努利试验。在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,事件发生与否的概率在每一次独立试验中都保持不变。
# 产生size个随机数,每个随机数来自n次尝试中的成功次数,其中每次尝试成功的概率为p。
np.random.binomial(n, p, size)
二项分布可以用于求如下场景的概率的近似值:
- 某人投篮命中率为0.3,投10次,进5个球的概率。
sum(np.random.binomial(10, 0.3, 200000) == 5) / 200000
- 某人打客服电话,客服接通率是0.6,一共打了3次,都没人接的概率。
sum(np.random.binomial(3, 0.6, 200000) == 0) / 200000
超几何分布(hypergeometric)
import numpy as np
# 产生size个随机数,每个随机数t为在总样本中随机抽取nsample个样本后好样本的个数,总样本由ngood个好样本和nbad个坏样本组成
np.random.hypergeometric(ngood, nbad, nsample, size)
a = np.random.hypergeometric(5, 5, 2, 10)
print(a)
print(np.random.hypergeometric(5, 5, 2, 10))
print(np.random.hypergeometric(5, 5, 2, 10))
print(np.random.hypergeometric(5, 5, 2, 10))
print(np.random.hypergeometric(5, 5, 2, 10))
正态分布(normal)
import numpy as np
# 产生size个随机数,服从标准正态(期望=0, 标准差=1)分布。
np.random.normal(size)
# 产生size个随机数,服从正态分布(期望=1, 标准差=10)。
np.random.normal(loc=1, scale=10, size)
b = np.random.normal(size=5)
print(b)
print(b)
print(np.random.normal(5))
print(np.random.normal(5))
c = np.random.normal(loc=1, scale=10, size=10)
print(c)
print(c)
print(np.random.normal(loc=1, scale=10, size=10))
print(np.random.normal(loc=1, scale=10, size=10))
标 准 正 态 分 布 概 率 密 度 : e − x 2 2 2 π 标准正态分布概率密度: \frac{e^{-\frac{x^2}{2}}}{\sqrt{2\pi}} 标准正态分布概率密度:2πe−2x2