随机数模块(random)
生成服从特定统计规律的随机数序列。
二项分布(binomial)
# 产生size个随机数,每个随机数来自n次尝试中的成功次数,其中每次尝试成功的概率为p。np.random.binomial(n, p, size)
某人投篮命中率为0.3,投10次,进5个球的概率。
sum(np.random.binomial(10, 0.3, 200000) == 5) / 200000
#随机数import numpy as np#命中率0.3 投10次,进几个?n = np.random.binomial(10,0.3,100000)for i in range(0,11): p = (n==i).sum()/100000 print(i,':',p)
某人打客服电话,客服接通率是0.6,一共打了3次,都没人接的概率。
sum(np.random.binomial(3, 0.6, 200000) == 0) / 200000
# 产生size个随机数,每个随机数t为在总样本中随机抽取nsample个样本后好样本的个数,总样本由ngood个好样本和nbad个坏样本组成np.random.hypergeometric(ngood, nbad, nsample, size)
#超几何分布n = np.random.hypergeometric(7,3,5,200000)# print(n)for i in range(2,6): p=(n==i).sum()/200000 print(i, ':', p)
# 产生size个随机数,服从标准正态(期望=0, 标准差=1)分布。np.random.normal(size)# 产生size个随机数,服从正态分布(期望=1, 标准差=10)。np.random.normal(loc=1, scale=10, size)
通常在数据分析的数据预处理阶段,会对当前样本数据进行少量的异常值修改与缺少值填充,可以使用random得到符合某种概率分布的一组随机数,完成数据预处理.