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日志模块logging简介
Apr 13 Python
Python对列表中的各项进行关联详解
Aug 15 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
Python合并多个Excel数据的方法
Jul 16 Python
Python WSGI的深入理解
Aug 01 Python
python使用folium库绘制地图点击框
Sep 21 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
对python中list的五种查找方法说明
Jul 13 Python
Python中tkinter的用户登录管理的实现
Apr 22 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
用PHP函数解决SQL injection
2006/12/09 PHP
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
php引用传值实例详解学习
2013/11/06 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
应届生.NET方向面试题
2015/05/23 面试题
经济管理专业求职信
2014/06/09 职场文书
项目工作说明书
2014/07/29 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
营运督导岗位职责
2015/04/10 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
初中班主任心得体会
2016/01/07 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
PHP遍历数组的6种方式总结
2021/11/17 PHP