随机数模块(random)

随机数模块(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
#随机数

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

超几何分布(hypergeometric)

# 产生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)

正态分布(normal)

# 产生size个随机数,服从标准正态(期望=0, 标准差=1)分布。
np.random.normal(size)
# 产生size个随机数,服从正态分布(期望=1, 标准差=10)。
np.random.normal(loc=1, scale=10, size)

通常在数据分析的数据预处理阶段,会对当前样本数据进行少量的异常值修改与缺少值填充,可以使用random得到符合某种概率分布的一组随机数,完成数据预处理.

 

posted @ 2019-09-09 14:56  maplethefox  阅读(651)  评论(0编辑  收藏  举报