【发布时间】:2018-02-08 17:52:16
【问题描述】:
给定一些数据x:
from pandas_datareader.data import DataReader as dr
x = np.squeeze(dr('DTWEXB', 'fred').dropna().values)
我想计算另一个向量y如下:
在这种情况下,alpha 等于 0.03。
我可以用scipy.lfilter? 来做这件事吗?类似的问题here,但在这种情况下,结果的起始值为 0,这会导致一些问题。
我的尝试:
from scipy.signal import lfilter
a = 0.03
b = 1 - a
y0 = x[0]
y = lfilter([a], [y0, -b], x)
结果应该是:
true_y = np.empty(len(x))
for k in range(0, len(true_y)):
if k == 0:
true_y[k] = x[0]
else:
true_y[k] = a*x[k] + b*true_y[k-1]
print(true_y)
[ 101.1818 101.176862 101.16819314 ..., 120.9813121 120.92484874
120.85786628]
【问题讨论】:
标签: python python-3.x numpy recursion scipy