有没有办法在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
来说是微不足道的,但是滚动窗口部分完全让我难堪。
我发现了this一篇关于Numpy中滚动窗口的博客文章,但似乎不是针对1D数组的。
只有一行代码。。。
只需使用blog代码,但将您的函数应用于结果。
即
你在哪里(从博客上):
相关问题 更多 >
编程相关推荐