numpy之随机数模块---random模块

一、二项分布

'''
    随机数:模块为random模块---生成服从特定统计规律的随机数序列
        1.二项分布(binomial):就是重复n次的伯努利实验,每次实验只有两种可能的结果,而且两种结果发生与否相互独立。
                            事件发生与否的概率在每次实验中都是保持不变的
                ----numpy中实现:np.random.binomial(n,p,size)-->产生size个随机数,符合二项分布,
                                每个随机数来自n次尝试中成功的次数,其中每次尝试成功的概率为p
'''
import numpy as np

r = np.random.binomial(10, 0.8, 1)
print(r)

# 求:命中率0.8时,投10球进8球的概率、
# 投100000轮看看有多少轮进了10个球
r = np.random.binomial(10, 0.8, 100000)
print(r[r == 8].size / r.size)
print((r == 0).sum()/r.size)
print((r == 1).sum()/r.size)
print((r == 2).sum()/r.size)
print((r == 3).sum()/r.size)
print((r == 4).sum()/r.size)
print((r == 5).sum()/r.size)
print((r == 6).sum()/r.size)
print((r == 7).sum()/r.size)
print((r == 8).sum()/r.size)
print((r == 9).sum()/r.size)
print((r == 10).sum()/r.size)


输出结果:

[8]
0.30189
0.0
1e-05
7e-05
0.00087
0.00557
0.02729
0.08732
0.20028
0.30189
0.26913
0.10757

二、其他

  

'''
正态分布(normal)
        ----numpy中实现:
            标准正态分布:np.random.normal(size)-->随机生成一组符合标准正态分布的随机数,期望为0,标准差为1
            一般正态分布:np.random.normal(μ,σ,size)-->随机生成一组服从正态分布的随机数,期望为μ,标准差为σ
平均分布(uniform):
        ----numpy中实现:
            np.random.uniform(n1,n2,size)-->产生size个随机数,服从平均分布[n1,n2]
超几何分布(hypergeometric):
        ----numpy中实现:
            np.random.hypergeometric(ngood,nbad,nsample,size)-->产生size个随机数,每个随机数为在总样本中随机抽取
            nsample个样本后好样本的个数。所有样本由ngood个好样本和nbad个坏样本组成。
'''
import numpy as np

# 超几何分布,7个好的3个坏的,摸3个,重复10次,返回好球的个数组成的数组
r = np.random.hypergeometric(7, 3, 3, 10)
print(r)


运行结果:
[2 1 3 3 2 2 3 3 2 2]
原文地址:https://www.cnblogs.com/yuxiangyang/p/11175407.html