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中Continue语句的用法的举例详解
May 14 Python
Python多线程下载文件的方法
Jul 10 Python
Python 数据结构之队列的实现
Jan 22 Python
python使用opencv进行人脸识别
Apr 07 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
Python日期时间Time模块实例详解
Apr 15 Python
django框架使用方法详解
Jul 18 Python
django-初始配置(纯手写)详解
Jul 30 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
通过实例解析Python RPC实现原理及方法
Jul 07 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
JavaScript的setter与getter方法
2017/11/29 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
python实现简易数码时钟
2021/02/19 Python
Python 获取项目根路径的代码
2019/09/27 Python
python SOCKET编程基础入门
2021/02/27 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
canvas像素画板的实现代码
2018/11/21 HTML / CSS
Html5新增标签有哪些
2017/04/13 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
支部鉴定材料
2014/06/02 职场文书
书法大赛策划方案
2014/06/04 职场文书
共青团员自我评价范文
2014/09/14 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android