本文实例讲述了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相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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

python二维随机游走_Python模拟随机游走图形效果示例相关推荐

  1. python二维数组换行输出_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  2. python二维图颜色函数_Python绘图之二维图与三维图详解

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import ...

  3. python二维图颜色函数_Python scipy的二维图像卷积运算与图像模糊处理操作示例

    本文实例讲述了Python scipy的二维图像卷积运算与图像模糊处理操作.分享给大家供大家参考,具体如下: 二维图像卷积运算 一 代码 import numpy as np from scipy i ...

  4. python二维列表的展开_python将三维数组展开成二维数组的实现

    这篇文章尝试用"曲线救国"的方法来解决二维数组叠加成三维数组的问题. 但天道有轮回,苍天绕过谁.好不容易把数组叠加在一块儿了,新的需求又出现了:将三维数组展开成二维数组.有借有还, ...

  5. python二维数据读取对齐_python代码要严格对齐

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  6. python二维码识别读取_python+opencv检测图片中二维码

    缘起 需要检测发票中二维码的位置,以确定图像该怎么旋转,同时也可以为提取二维码信息创造先觉条件!(万恶的需求!) 失败的尝试--opencv训练大法 不感兴趣的可跳过不看! 解释:原文作者是训练检测舌 ...

  7. python二维数组去重复_python 去除二维数组/二维列表中的重复行方法

    python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...

  8. python二维数组画出_python二维数组画图

    matplotlib机器学习常用绘图指令_计算机软件及应用_IT/计算机_专业资料.该文档介绍了python的matplotlib库用于数据分析中的图形绘制. ... matplotlib 绘图基础 ...

  9. python二维数组怎么写_python的二维数组操作

    需要在程序中使用二维数组,网上找到一种这样的用法: #创建一个宽度为3,高度为4的数组 #[[0,0,0], # [0,0,0], # [0,0,0], # [0,0,0]] myList = [[0 ...

  10. python二维列表做参数_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...

    1楼讲的很对,我这边举例详细说明一下. 如下为help(sum)解释 Help on built-in function sum in module builtins: sum(iterable, s ...

最新文章

  1. 哈哈,我的博客开通啦,欢迎光临~~~~~~~~~~~~
  2. 一位年轻董事长给大学生的18条好建议
  3. 雅虎中国弃门户回归搜索 推出新搜索产品线
  4. .jsp与servlet之间页面跳转及参数传递实例
  5. P2217-[HAOI2007]分割矩阵【dfs,记忆化搜索】
  6. 所选元素非联通_非固化橡胶沥青防水涂料与耐根穿刺防水卷材(沥青基)施工要点...
  7. 三大特性学习目标 java 1614782356
  8. MySQL报错 Packet for query is too large,server向mysql发送的数据包大小超过mysql限制
  9. 开源linux_15本书(适合(希望)喜欢Linux和开源的孩子)
  10. 计算机与工程建设项目结合,计算机科学与技术在工程建设项目管理中应用.doc...
  11. Java新职篇:类型提升的约定
  12. 双路电机驱动模块-RZ7899.PDF
  13. 实训报告万能模板计算机专业,计算机实训报告模板
  14. 轻量级cad绘图工具FoxCAD for mac
  15. 360安全卫士极速版修改浏览器主页
  16. 文档矫正(计算机视觉实验)
  17. R语言-查看加载包、卸除加载包及安装包与卸载包
  18. 061 python实现EXP
  19. 555定时器(1)单稳态触发器电路及Multisim实例仿真
  20. linux系统安装T4驱动

热门文章

  1. php三D立体模拟,【HTML5】3D模型--百行代码实现旋转立体魔方实例
  2. css 图片 鼠标样式,鼠标样式 - CSS | 绿叶学习网
  3. 基于javaweb企业合同管理系统
  4. python系统运维工程师_系统运维工程师的工作职责
  5. [Other]规范的邮件签名格式及HTML代码
  6. 《统计学基于R》第一章 数据与R
  7. 植物大战僵尸存档任务C1-01
  8. XGboost 出现UserWarning: Use subset (sliced data) of np.ndarray is not recommended
  9. Flutter 监听返回键
  10. html竖版古诗,古诗竖版手抄报版面设计图