码迷,mamicode.com
首页 > 其他好文 > 详细

Moving Average

时间:2018-08-05 22:40:53      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:[1]   mat   win   ror   exp   cep   day   plot   art   

移动平均算法Demo

#!/usr/bin/python2.7
# Fetch data from BD and analyse.

import json
import urllib
import traceback
import numpy as np
# import pandas as pd
import matplotlib.pyplot as plt
#from scipy import stats

def fetch_raw_data(url):
    try:
        response = urllib.urlopen(url).read().decode(‘utf-8‘)
        return json.loads(response)
    except Exception, e:
        err = traceback.format_exc()
        print("fetch_raw_data err: {}".format(err))

# 移动平均算法
def moving_average(f_t):
    if type(f_t) is not np.ndarray:
        raise TypeError            (‘Expected one dimensional numpy array.‘)
    if f_t.shape[1] != 1:
        raise IndexError            (‘Expected one dimensional numpy array, %d dimensions given.‘ % (f_t.shape[1]))

    f_t = f_t.flatten()
    window = 5
    mode = ‘same‘
    g_t = np.ones(int(window))/float(window)
    # Deal with boundaries with atleast lag/2 day window
    # ma = np.convolve(f_t,g_t,mode)
    # ma = np.convolve(f_t,g_t,mode)[window-1:-window+1]
    ma = np.convolve(f_t,g_t)[window-1:-window+1]
    return ma

def raw_data():
    start_ts = 1533204000
    stop_ts = 1533222000
    url = ‘http://8.8.8.8/path/data?begin_time={}&end_time={}&type=asia‘
    url = url.format(start_ts,stop_ts)
    result = fetch_raw_data(url)
    # downloadspeed_lst = result[‘result‘][‘downloadspeed‘]
    downloadspeed_lst = result[‘result‘][‘totaluploadspeed‘]
    downloadspeed_lst = [ [ele,] for ele in downloadspeed_lst ]
    return downloadspeed_lst

def run(downloadspeed_lst):
    downloadspeed_ndarray = np.array(downloadspeed_lst)
    ma = moving_average(downloadspeed_ndarray)
    return ma


data = raw_data()
ma = run(data)
t = np.arange(4, len(data))
plt.plot(t, data[4:], lw=1.0)
plt.plot(t, ma, lw=1.0)
plt.show()

 

执行结果:

技术分享图片

蓝色是原始数据,棕色是经过移动平均算法弱化后的数据。

 

参考:https://www.cnblogs.com/21207-iHome/p/6231607.html

 

Moving Average

标签:[1]   mat   win   ror   exp   cep   day   plot   art   

原文地址:https://www.cnblogs.com/standby/p/9427384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!