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 兄妹拍照祝福语简短的话