Python实现滑动平均(Moving Average)的例子
Python中滑动平均算法(MovingAverage)方案:
#!/usr/bin/envpython #-*-coding:utf-8-*- importnumpyasnp #等同于MATLAB中的smooth函数,但是平滑窗口必须为奇数。 #yy=smooth(y)smoothsthedatainthecolumnvectory.. #Thefirstfewelementsofyyaregivenby #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 #... defsmooth(a,WSZ): #a:原始数据,NumPy1-Darraycontainingthedatatobesmoothed #必须是1-D的,如果不是,请使用np.ravel()或者np.squeeze()转化 #WSZ:smoothingwindowsizeneeds,whichmustbeoddnumber, #asintheoriginalMATLABimplementation 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] returnnp.concatenate((start,out0,stop)) #anotherone,边缘处理的不好 """ defmovingaverage(data,window_size): window=np.ones(int(window_size))/float(window_size) returnnp.convolve(data,window,'same') """ #anotherone,速度更快 #输出结果不与原始数据等长,假设原数据为m,平滑步长为t,则输出数据为m-t+1 """ defmovingaverage(data,window_size): cumsum_vec=np.cumsum(np.insert(data,0,0)) ma_vec=(cumsum_vec[window_size:]-cumsum_vec[:-window_size])/window_size returnma_vec """
以上这篇Python实现滑动平均(MovingAverage)的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语