用python内置的random模块实现1000步的随机漫步
import random # 引入python内置的random模块
nsteps = 1000 # nsteps 指定漫步的步数
position = 0 # postion 用于代表每一次漫步过后的位置
walks = [position] # 集合类型的walks用于存储每次漫步的数据
for x in range(nsteps):
step = 1 if random.randint(0,1) else -1
# 很pythonic的一个三元运算. random.randint(x,y)返回0到1之间的所有整数,区间为闭区间
position += step # postion 与 每次漫步的结果加法运算,得到每次漫步过后的位置
walks.append(position) # 将漫步的结果添加到walks中
一种用numpy内置random进行漫步的方法
nsteps = 1000
draws = np.randdom.randint(0,2,size=nsteps)
#np中的random.randint是左闭右开的区间,和python中的randint不一样,并且这里的结果直接是一个array的类型
steps = np.where(draws>0,1,-1)
#np.where 语句,等效于一个三元运算符where(cond,x,y) 如果cond为True,选择x,False时选择y
walks = steps.cumsum()
# np中的cumsum()为前后值相加的非聚合方法
同时模拟5000次1000步的随机漫步
xsteps = 5000
ysteps = 1000
draws = np.random.randint(0,2,size=(xsteps,ysteps)) # 创建的是5000*1000的二值矩阵
steps = np.where(draws>0,1,-1) # 对数值进行筛选
walks = np.cumsum(steps,axis=1) # cumsum的运算,指定了运算的方向,每一次的运算都行方向上的运算
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。