Numpy學習指南之隨機漫步模擬隨機數生成

2021-10-23 02:55:35 字數 1439 閱讀 7365

import random

import numpy as np

position = 0

walk = [position] #用position初始化walk列表

steps = 1000 #假設走1000步

for i in range(steps):#使用random隨機生成1或-1的步數

step = 1 if random.randint(0, 1) else -1

position += step

###使用numpy.random生成隨機數

np.random.seed(12345)

nsteps = 1000

draws = np.random.randint(0, 2, size=nsteps)

steps = np.where(draws > 0, 1, -1) #隨機生成1或-1的步數

walk = steps.cumsum() #把走到的位置記錄下來

print(walk.min()) #走到的最小值

print(walk.max()) #走到的最大位置

print((np.abs(walk) >= 10).argmax()) #走到-10或10位置時的步數

#一次模擬多個隨機漫步

nwalks = 5000

nsteps = 1000

#模擬5000個隨機漫步

draws = np.random.randint(0, 2, size=(nwalks, nsteps))

steps = np.where(draws > 0, 1, -1)

#使用正態分佈以均值為0,標準差為0.25隨機生成

#steps = np.random.normal(loc = 0,scale=0.25,size=(nwalks, nsteps))

walks = steps.cumsum()

print(walk.min()) #走到的最小值

print(walk.max()) #走到的最大位置

print(walks)

hits30 = (np.abs(walks) >= 10).any() #檢查走到-30或30位置的walks

print(hits30.sum())

#第一次走到30或-30位置走的步數

crossing_times = (np.abs(walks[hits30]) >= 30).argmax(1)

print(crossing_times.mean()) #求均值,如果使用正態分佈則略去

jmeter學習指南之優化指令碼

一 減少listener listener作為乙個收集sampler的結果資料和呈現結果的檔案,其本身會在每次sampler執行完成後執行一次。即乙個test plan中的listener數量越多,執行時listener本身帶來的資源消耗就越大 尤其是view results in table以及v...

Kotlin學習指南之委託模式

5.參考 委託模式是軟體設計中一種常用也是比較重要的技巧。這種模式可以簡單理解為 模式。在委託模式中,有兩個物件參與處理同乙個請求,接受請求的物件將請求委託給另乙個物件來處理。kotlin 直接支援委託模式,更加優雅,簡潔。kotlin 通過關鍵字 by 實現委託。kotlin委託模式主要包含兩種型...

安卓學習之SQLite相關學習指南

安卓學習的領域是非常之廣的,能夠挖掘的東西非常多,只要認真探索,就能夠學到很多東西,下面介紹一些sqlite相關學習指南。一 sqlite簡介 在 android學習 平台上,整合了乙個嵌入式關係型資料庫 sqlite,sqlite3支援 null integer real 浮點數字 text 字串...