Numpy学习笔记三

范例随机漫步

import random
position=0
walk=[position]
steps=1000
for i in range(steps):
    step=1 if random.randint(0,1) else -1  #random.randint(0,1)随机产生0,1数字
    position+=step
    walk.append(position)
walk

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

walk.min(),walk.max(),(np.abs(walk)>=10).argmax() #(np.abs(walk) >= 10).argmax()找出第一个10或-10的索引值

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

walks.shape

#(np.abs(walks)>=30).any(1)每一行的1000列中若有一个值的绝对值小于30,则为true
hits30=(np.abs(walks)>=30).any(1)
hits30

hits30.shape

hits30.sum() #统计为true的数量

#计算在轴1上的平均穿越时间  
crossing_times=(np.abs(walks[hits30])>=30).argmax(1)
crossing_times,crossing_times.mean()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值