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统计一个文本中重复行数的方法
Nov 19 Python
对python中return和print的一些理解
Aug 18 Python
python实现员工管理系统
Jan 11 Python
python爬取个性签名的方法
Jun 17 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
Python解析json代码实例解析
Nov 25 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 Python
Python实现8种常用抽样方法
Jun 27 Python
Python实现将多张图片合成MP4视频并加入背景音乐
Apr 28 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 google或baidu分页代码
2009/11/26 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
Python与R语言的简要对比
2017/11/14 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
python标记语句块使用方法总结
2019/08/05 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
商务英语毕业生自荐信范文
2013/11/08 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
公务员个人总结
2015/02/12 职场文书
护士自我推荐信范文
2015/03/24 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python