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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM