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来使用七牛云存储的方法详解
Aug 07 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
python实现数据写入excel表格
Mar 25 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
Python 获取div标签中的文字实例
Dec 20 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
django删除表重建的实现方法
Aug 28 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
Python 中数组和数字相乘时的注意事项说明
May 10 Python
Python超简单容易上手的画图工具库推荐
May 10 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
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
js实现下一页页码效果
2017/03/07 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
2014道德模范事迹材料
2014/02/16 职场文书
培训督导岗位职责
2015/04/10 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android