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调用cmd复制文件代码分享
Dec 27 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
python爬虫使用cookie登录详解
Dec 27 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
python浪漫表白源码
Apr 05 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
python 实现音频叠加的示例
Oct 29 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/05/31 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
简单谈谈Python中的反转字符串问题
2016/10/24 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Selenium定位元素操作示例
2018/08/10 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
业务员岗位职责
2013/11/16 职场文书
高三体育教学反思
2014/01/29 职场文书
运动会入场词200字
2014/02/15 职场文书
文化活动实施方案
2014/03/28 职场文书
个人思想政治总结
2015/03/05 职场文书
迎国庆主题班会
2015/08/17 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书