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求素数示例分享
Feb 16 Python
采用python实现简单QQ单用户机器人的方法
Jul 03 Python
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
遗传算法python版
Mar 19 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
python绘制雪景图
Dec 16 Python
python如何提升爬虫效率
Sep 27 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 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实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python正则分组的应用
2013/11/10 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
详解python之协程gevent模块
2018/06/14 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
Ibatis的核心配置文件都有什么
2014/09/08 面试题
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
协议书范本
2014/04/23 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
计划生育目标责任书
2015/05/09 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
详细聊聊vue中组件的props属性
2021/11/02 Vue.js