标签:[1] mat win ror exp cep day plot art
#!/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
标签:[1] mat win ror exp cep day plot art
原文地址:https://www.cnblogs.com/standby/p/9427384.html