美文网首页
code learning

code learning

作者: SeekerLinJunYu | 来源:发表于2018-12-09 12:23 被阅读0次
    用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的运算,指定了运算的方向,每一次的运算都行方向上的运算
    

    相关文章

      网友评论

          本文标题:code learning

          本文链接:https://www.haomeiwen.com/subject/mvbhhqtx.html