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解析html开发库pyquery使用方法
Feb 07 Python
深入理解Python3中的http.client模块
Mar 29 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
Django模板语言 Tags使用详解
Sep 09 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
用python解压分析jar包实例
Jan 16 Python
Python爬虫抓取指定网页图片代码实例
Jul 24 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 Python
python实现按日期归档文件
Jan 30 Python
图文详解matlab原始处理图像几何变换
Jul 09 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
javascript dom 操作详解 js加强
2009/07/13 Javascript
js 学习笔记(三)
2009/12/29 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
MySQL最常见的操作语句小结
2015/05/07 Python
Python中单、双下划线的区别总结
2017/12/01 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Python语法分析之字符串格式化
2019/06/13 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
简历上的自我评价怎么写
2014/01/28 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
租房协议书范例
2014/10/14 职场文书
2019暑假学生安全口号
2019/06/27 职场文书