Скользящее окно для одномерных массивов в Numpy?

Есть ли способ эффективно реализовать скользящее окно для одномерных массивов в Numpy?

Например, у меня есть этот чистый фрагмент кода Python для вычисления скользящих стандартных отклонений для одномерного списка, где наблюдения - это одномерный список значений, а ] 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 , но вращающееся окно меня полностью ставит в тупик.

Я нашел это сообщение в блоге о скользящем w indow в Numpy, но, похоже, это не для одномерных массивов.

34
задан ProgramFOX 26 October 2014 в 07:26
поделиться