我编写了下面的函数,以便根据所需的 SMA 公式查找 csv 文件的 SMA,但是,我的公式有问题,我无法弄清楚。
def SMA_calculation(t, w):
s = np.size(t)
g = np.zeros(s)
for i in range(0, s):
if i < w-1:
g[i] = np.NaN
else:
g[i] = np.mean(t[i-w:i])
return g
第一次执行
else
块是在i == w - 1
时。这意味着传递给 mean
的参数是 t[-1:w-1]
。这是错误的。您想要获取平均值的第一个切片是 t[:w]
。因此,您需要将切片的开始索引和结束索引都加一:
g[i] = np.mean(t[i-w+1:i+1])