您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要介绍了Python如何实现模拟随机游走图形效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
具体如下:
在python中,可以利用数组操作来模拟随机游走。
下面是一个单一的200步随机游走的例子,从0开始,步长为1和-1,且以相等的概率出现。纯Python方式实现,使用了内建的 random 模块:
# 随机游走 import matplotlib.pyplot as plt import random position = 0 walk = [position] steps = 200 for i in range(steps): step = 1 if random.randint(0, 1) else -1 position += step walk.append(position) fig = plt.figure() plt.title("www.jb51.net") ax = fig.add_subplot(111) ax.plot(walk) plt.show()
第二种方式:简单的把随机步长累积起来并且可以可以使用一个数组表达式来计算。因此,我用 np.random 模块去200次硬币翻转,设置它们为1和-1,并计算累计和:
# 随机游走 import matplotlib.pyplot as plt import numpy as np nsteps = 200 draws = np.random.randint(0, 2, size=nsteps) steps = np.where(draws > 0, 1, -1) walk = steps.cumsum() fig = plt.figure() plt.title("www.jb51.net") ax = fig.add_subplot(111) ax.plot(walk) plt.show()
一次模拟多个随机游走
# 随机游走 import matplotlib.pyplot as plt import numpy as np nwalks = 5 nsteps = 200 draws = np.random.randint(0, 2, size=(nwalks, nsteps)) # 0 or 1 steps = np.where(draws > 0, 1, -1) walks = steps.cumsum(1) fig = plt.figure() plt.title("www.jb51.net") ax = fig.add_subplot(111) for i in range(nwalks): ax.plot(walks[i]) plt.show()
当然,还可以大胆的试验其它的分布的步长,而不是相等大小的硬币翻转。你只需要使用一个不同的随机数生成函数,如 normal 来产生相同均值和标准偏差的正态分布:
steps = np.random.normal(loc=0, scale=0.25, size=(nwalks, nsteps))
感谢你能够认真阅读完这篇文章,希望小编分享的“Python如何实现模拟随机游走图形效果”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。