Python模拟随机游走图形效果示例


Posted in Python onFebruary 06, 2018

本文实例讲述了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("3water.com")
ax = fig.add_subplot(111)
ax.plot(walk)
plt.show()

Python模拟随机游走图形效果示例

第二种方式:简单的把随机步长累积起来并且可以可以使用一个数组表达式来计算。因此,我用 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("3water.com")
ax = fig.add_subplot(111)
ax.plot(walk)
plt.show()

Python模拟随机游走图形效果示例

一次模拟多个随机游走

# 随机游走
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("3water.com")
ax = fig.add_subplot(111)
for i in range(nwalks):
  ax.plot(walks[i])
plt.show()

Python模拟随机游走图形效果示例

当然,还可以大胆的试验其它的分布的步长,而不是相等大小的硬币翻转。你只需要使用一个不同的随机数生成函数,如 normal 来产生相同均值和标准偏差的正态分布:

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

Python模拟随机游走图形效果示例

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中的zip函数使用示例
Jan 29 Python
Python中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
python安装Scrapy图文教程
Aug 14 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
python设定并获取socket超时时间的方法
Jan 12 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python generator生成器和yield表达式详解
Aug 08 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 #Python
TensorFlow高效读取数据的方法示例
Feb 06 #Python
django使用xlwt导出excel文件实例代码
Feb 06 #Python
Python使用装饰器进行django开发实例代码
Feb 06 #Python
Python yield与实现方法代码分析
Feb 06 #Python
Django中间件工作流程及写法实例代码
Feb 06 #Python
Django数据库表反向生成实例解析
Feb 06 #Python
You might like
PHP4实际应用经验篇(1)
2006/10/09 PHP
PHP 学习路线与时间表
2010/02/21 PHP
php生成无限栏目树
2017/03/16 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
three.js 入门案例详解
2018/01/23 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
python中map()与zip()操作方法
2016/02/27 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Django Rest framework权限的详细用法
2019/07/25 Python
python函数的万能参数传参详解
2019/07/26 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
社会实践感言
2014/01/25 职场文书
黄金搭档广告词
2014/03/21 职场文书
法人授权委托书
2014/04/03 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
小学记事作文之200字
2019/08/06 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书