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爬取APP下载链接的实现方法
Sep 30 Python
Python探索之SocketServer详解
Oct 28 Python
详解python-图像处理(映射变换)
Mar 22 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Python制作词云图代码实例
Sep 09 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
基于django micro搭建网站实现加水印功能
May 22 Python
python属于软件吗
Jun 18 Python
Python中glob库实现文件名的匹配
Jun 18 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 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页面间传递参数实例代码
2008/06/05 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
Javascript typeof 用法
2008/12/28 Javascript
Javascript 圆角div的实现代码
2009/10/15 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python用户自定义异常的实现
2020/12/25 Python
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
实体的生命周期
2013/08/31 面试题
Prototype如何更新局部页面
2013/03/03 面试题
预备党员党课思想汇报
2014/01/13 职场文书
文明村创建实施方案
2014/03/27 职场文书
《金子》教学反思
2014/04/13 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
费用申请报告范文
2015/05/15 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL