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 dict remove数组删除(del,pop)
Mar 24 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
Python实现批量读取word中表格信息的方法
Jul 30 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
Python DES加密实现原理及实例解析
Jul 17 Python
python 实现体质指数BMI计算
May 26 Python
Python函数中的不定长参数相关知识总结
Jun 24 Python
python神经网络ResNet50模型
May 06 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文件操作实现代码分享
2011/09/01 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
javascript引用对象的方法
2007/01/11 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
Python爬取国外天气预报网站的方法
2015/07/10 Python
python制作一个桌面便签软件
2015/08/09 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
毕业生医学检验求职信
2013/10/16 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
《颐和园》教学反思
2014/02/26 职场文书
篮球赛口号
2014/06/18 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
英语辞职信范文
2015/02/28 职场文书
建党伟业观后感
2015/06/01 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript