有没有一种有效的方法在Numpy中实现1D数组的滚动窗口?
例如,我有这个纯Python代码片段用于计算1D列表的滚动标准差,其中observations
是值的1D列表,n
是标准差的窗口长度:
stdev = []
for i, data in enumerate(observations[n-1:]):
strip = observations[i:i+n]
mean = sum(strip) / n
stdev.append(sqrt(250*sum([(s-mean)**2 for s in strip])/(n-1)))
有没有一种完全在Numpy内部完成的方法,即不使用任何Python循环?使用
numpy.std
可以轻松计算标准差,但是滚动窗口部分完全使我困惑。我找到了这篇关于Numpy中滚动窗口的博客文章,但似乎不适用于1D数组。