我以基本上随机的间隔采样数据.我想使用numpy(或其他

python包)计算加权移动平均值.我有一个粗略的执行移动平均线,但我无法找到一个很好的方法来做一个加权移动平均线,以便朝向边框中心的数值加权比边缘的值多.

这里我生成一些样本数据,然后取平均值.我最容易实现加权移动平均线?谢谢!

import numpy as np

import matplotlib.pyplot as plt

#first generate some datapoint for a randomly sampled noisy sinewave

x = np.random.random(1000)*10

noise = np.random.normal(scale=0.3,size=len(x))

y = np.sin(x) + noise

#plot the data

plt.plot(x,y,'ro',alpha=0.3,ms=4,label='data')

plt.xlabel('Time')

plt.ylabel('Intensity')

#define a moving average function

def moving_average(x,y,step_size=.1,bin_size=1):

bin_centers = np.arange(np.min(x),np.max(x)-0.5*step_size,step_size)+0.5*step_size

bin_avg = np.zeros(len(bin_centers))

for index in range(0,len(bin_centers)):

bin_center = bin_centers[index]

items_in_bin = y[(x>(bin_center-bin_size*0.5) ) & (x

bin_avg[index] = np.mean(items_in_bin)

return bin_centers,bin_avg

#plot the moving average

bins, average = moving_average(x,y)

plt.plot(bins, average,label='moving average')

plt.show()

输出:

使用crs17的建议在np.average函数中使用“weights =”,我得出了加权平均函数,它使用高斯函数来加权数据:

def weighted_moving_average(x,y,step_size=0.05,width=1):

bin_centers = np.arange(np.min(x),np.max(x)-0.5*step_size,step_size)+0.5*step_size

bin_avg = np.zeros(len(bin_centers))

#We're going to weight with a Gaussian function

def gaussian(x,amp=1,mean=0,sigma=1):

return amp*np.exp(-(x-mean)**2/(2*sigma**2))

for index in range(0,len(bin_centers)):

bin_center = bin_centers[index]

weights = gaussian(x,mean=bin_center,sigma=width)

bin_avg[index] = np.average(y,weights=weights)

return (bin_centers,bin_avg)

结果看起来不错:

python 移动平均值_加权移动平均值在python相关推荐

  1. pythoncookbook和流畅的python对比_为什么你学Python效率比别人慢?因为你没有这套完整的学习资料...

    以下资源免费获取方式! 关注!转发!私信"资料"即可免费领取! 入门书籍 1.<Python基础教程>(Beginning Python From Novice to ...

  2. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  3. 3 x 10的python表达式_这道数学题用PYTHON编程语言怎么写? 编程语言python是用

    我觉着,这个应该这样解决比较符合计算机解题思路. 下面的回答的,思考的东西太多. # -*- coding: utf-8 -*- __author__ = 'lpe234' __date__ = '2 ...

  4. 为什么要学python语言_我们为什么要学习Python语言?

    原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...

  5. 下载python步骤_下载及安装Python详细步骤

    安装python分三个步骤: *下载python *安装python *检查是否安装成功 1.下载python (1)python下载地址 (2)选择下载的版本 (3)点开download后,找到下载 ...

  6. ubuntu更改默认python版本_更改Ubuntu默认python版本的方法

    1.查看基本信息 # 列出所有已安装python ls /usr/bin/python* #查看默认的 Python 版本信息: python --version 2.基于用户修改 默认Python ...

  7. python编辑器_推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者

    编程里面的编辑器就像是武林大会里面的高手,每一年都有新秀,黑马出现!比如有练习霸道的天罡之气的榜首Pycharm,力量雄厚霸道战斗力极强,但是对斗气消耗很大,占内存大而且启动速度有点慢!还有练习灵巧的 ...

  8. 人工智能只能用python吗_为什么人工智能用Python?

    主要原因: 1.人工智能适应Python的编程语言. 2.人工智能需要利用Python的高层语言,实现可移植性.面向对象.可扩展性.可嵌入型等功能,来实现人机交流. Python:是一种面向对象的解释 ...

  9. 数据结构与算法python描述_数据结构与算法——Python语言描述.pdf

    数据结构与算法--Python语言描述.pdf 欢迎加入非盈利Python编学习交流程QQ群783462347,群里免费提供500+本Python书籍! 欢迎加入非盈利Python编程学习交流程QQ群 ...

最新文章

  1. 怎么做 慢充 话费_警惕!冒充亲友骗充话费卷土重来
  2. 信息熵与自然语言处理
  3. Vue源码探究-全局API
  4. 未定义与 double 类型的输入参数相对应的函数 eval_点评一下鸿蒙os的时钟计算函数...
  5. 机器学习之梯度下降法
  6. LeetCode 121. 买卖股票的最佳时机(Best Time to Buy and Sell Stock)
  7. ABAP Text表的实现原理
  8. UTC转换BJT时间 时间转换 c语言程序设计 mooc 翁恺
  9. 直击平昌!2天40位大咖的平昌区块链论坛精华都在这了!
  10. oracle大数据量迁移,分批量导入样例(fetch...bulk collect)以及forall结合使用
  11. oracle取月去0,Oracle取月份,不带前面的0
  12. sap 打印预览界面点击打印时记录打印次数_9个Excel打印神技巧!从此打印不求人!...
  13. JVM调优--04---dump文件分析 、arthas在线排查工具
  14. 如何进行敌我识别(IFF)应用中的二次监视雷达(SSR)的模块化产线测试
  15. regopenkeyexfailed什么意思_外置网卡驱动安装出现RegOpenKeyEx Failed,怎么回事?
  16. vt-x+linux子系统,虚拟机安装linux 系统(二 )解决 Intel VT-x 报错
  17. 小米手机6的主要参数与特性
  18. kafka-consumer-group Group xxx with protocol type ‘‘ is not a valid consumer group
  19. proxmox ve 中文社区_基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置...
  20. 【技美百人计划】图形 4.2 SSAO算法 屏幕空间环境光遮蔽(&HBAO)

热门文章

  1. ubuntu普通用户不能sudo的问题
  2. 软件流程和管理(一):软件管理概述
  3. java shell spool_批量快速的导入导出Oracle的数据(spool缓冲池、java实现)
  4. 金融信创扛大旗|优炫软件联合发起成立金融信创协同汇
  5. 概率及常用概率分布的实现——计算机视觉修炼之路(零)
  6. window.opener用法
  7. 大学生读者让我帮找二分查找的bug
  8. ZigBee硬件平台小记(CC2530)
  9. 阳光系统 移动硬盘参数错误怎么解决教程
  10. flutter组件之Expanded