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操作MySQL数据库具体方法
Oct 28 Python
Python中字典和JSON互转操作实例
Jan 19 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
详解Python迭代和迭代器
Mar 28 Python
python 循环while和for in简单实例
Aug 16 Python
Python代码实现KNN算法
Dec 20 Python
Python 查看文件的读写权限方法
Jan 23 Python
分析Python读取文件时的路径问题
Feb 11 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
python单线程下实现多个socket并发过程详解
Jul 27 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 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+mysql写的简单留言本实例代码
2008/07/25 PHP
PHP 定界符 使用技巧
2009/06/14 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
如何使用php实现评委评分器
2015/07/31 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
pandas值替换方法
2018/07/10 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
wxPython实现列表增删改查功能
2019/11/19 Python
python实现在线翻译功能
2020/03/03 Python
Python新手如何理解循环加载模块
2020/05/29 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
JDO的含义
2012/11/17 面试题
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
优秀毕业生推荐信
2013/11/02 职场文书
电信专业毕业生推荐信
2013/11/18 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
上班看电影检讨书
2014/02/12 职场文书
学校花圃的标语
2014/06/18 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android