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 06 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
python实现爬取图书封面
Jul 05 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
python 循环数据赋值实例
Dec 02 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
Django 项目布局方法(值得推荐)
Mar 22 Python
对Python 字典元素进行删除的方法
Jul 31 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处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
详解Python异常处理中的Finally else的功能
2017/12/29 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
python绘制彩虹图
2019/12/16 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
Python如何急速下载第三方库详解
2020/11/02 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
市场营销职业生涯规划书范文
2014/01/12 职场文书
旷课检讨书2000字
2014/01/14 职场文书
学历公证书范本
2014/04/09 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL