Есть ли способ эффективно реализовать развертку окна для 1D массивов в Numpy?
Например, у меня есть этот чистый фрагмент кода на 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 массивов.