Numpy基礎(chǔ): 數(shù)組和矢量計算(隨機數(shù)和隨機漫步)

np的random模塊對Python內(nèi)置random進行補充,增加了一些用于高效生成多種概率分布的樣本值的函數(shù)

函數(shù) 作用
seed 隨機數(shù)種子
permutation 序列的隨機排序
shuffle 重新排序
rand 即均勻分布的樣本值[0,1)
randint 給定上下限范圍取一個整數(shù)
randn 正態(tài)分布的樣本值
binomial 二項分布的樣本值
normal 正態(tài)分布的樣本值
beta Beta分布的樣本值
chisquare 卡方分布的樣本值
gamma gamma分布的樣本值
uniform 產(chǎn)生在[0,1)中均勻分布的樣本值

范例 隨機漫步
模擬隨機漫步: 從0開始,步長為1或-1出現(xiàn)的概率相等.通過村Python的方式實現(xiàn)1000步的隨機漫步

import random
import matplotlib.pyplot as plt

position = 0
walk = [position]
steps = 1000
for i in range(steps):
    step = 1 if random.randint(0,1) else -1
    position += step
    walk.append(position)
    
walk_hund = walk[:100]

xl = [i for i in range(100)]
plt.plot(xl,walk_hund)

使用np.random模塊一次性隨機參數(shù)1000個"投擲硬幣"的結(jié)構(gòu),硬幣的正反分別用1或-1表示

nsteps = 1000
draws = np.random.randint(0,2,size=nsteps)
steps = np.where(draws > 0, 1,-1)
walks = steps.cumsum()
walks

同時進行多個隨機漫步模擬

nsteps = 1000
nwalks = 5000
draws = np.random.randint(0,2,size=(nwalks,nsteps))
steps = np.where(draws > 0, 1,-1)
walks = steps.cumsum(1)
walks
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容