Python实现滑动平均(Moving Average)的例子


Posted in Python onAugust 24, 2019

Python中滑动平均算法(Moving Average)方案:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np

# 等同于MATLAB中的smooth函数,但是平滑窗口必须为奇数。

# yy = smooth(y) smooths the data in the column vector y ..
# The first few elements of yy are given by
# yy(1) = y(1)
# yy(2) = (y(1) + y(2) + y(3))/3
# yy(3) = (y(1) + y(2) + y(3) + y(4) + y(5))/5
# yy(4) = (y(2) + y(3) + y(4) + y(5) + y(6))/5
# ...

def smooth(a,WSZ):
  # a:原始数据,NumPy 1-D array containing the data to be smoothed
  # 必须是1-D的,如果不是,请使用 np.ravel()或者np.squeeze()转化 
  # WSZ: smoothing window size needs, which must be odd number,
  # as in the original MATLAB implementation
  out0 = np.convolve(a,np.ones(WSZ,dtype=int),'valid')/WSZ
  r = np.arange(1,WSZ-1,2)
  start = np.cumsum(a[:WSZ-1])[::2]/r
  stop = (np.cumsum(a[:-WSZ:-1])[::2]/r)[::-1]
  return np.concatenate(( start , out0, stop ))

# another one,边缘处理的不好

"""
def movingaverage(data, window_size):
  window = np.ones(int(window_size))/float(window_size)
  return np.convolve(data, window, 'same')
"""

# another one,速度更快
# 输出结果 不与原始数据等长,假设原数据为m,平滑步长为t,则输出数据为m-t+1

"""
def movingaverage(data, window_size):
  cumsum_vec = np.cumsum(np.insert(data, 0, 0)) 
  ma_vec = (cumsum_vec[window_size:] - cumsum_vec[:-window_size]) / window_size
  return ma_vec
"""

以上这篇Python实现滑动平均(Moving Average)的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中迭代器(iterator)用法实例分析
Apr 29 Python
Python类属性与实例属性用法分析
May 09 Python
python实现按任意键继续执行程序
Dec 30 Python
用python处理MS Word的实例讲解
May 08 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
解决Pycharm 运行后没有输出的问题
Feb 05 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
用Python生成会跳舞的美女
Jan 18 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 #Python
在Python3 numpy中mean和average的区别详解
Aug 24 #Python
Python绘制股票移动均线的实例
Aug 24 #Python
python+selenium 鼠标事件操作方法
Aug 24 #Python
python+selenium select下拉选择框定位处理方法
Aug 24 #Python
Python封装成可带参数的EXE安装包实例
Aug 24 #Python
python识别文字(基于tesseract)代码实例
Aug 24 #Python
You might like
星际RPG字典
2020/03/04 星际争霸
php 在文件指定行插入数据的代码
2010/05/08 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP对象实例化单例方法
2017/01/19 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Python中一般处理中文的几种方法
2019/03/06 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
PHP面试题附答案
2015/11/28 面试题
this关键字的作用
2016/01/30 面试题
自荐信封面
2013/12/04 职场文书
关于环保的建议书400字
2014/03/12 职场文书
公司任命书模板
2014/06/06 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
2015年科室工作总结
2015/04/10 职场文书
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers