¿Hay alguna forma de implementar eficientemente una ventana rotativa para matrices 1D en Numpy?¿Ventana giratoria para matrices 1D en Numpy?
Por ejemplo, tengo este fragmento de código Python puro para calcular las desviaciones estándar de rodadura para una lista 1D, donde observations
es la lista 1D de valores y n
es la longitud de la ventana para la desviación estándar:
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)))
¿Hay alguna manera de hacer esto completamente dentro de Numpy, es decir, sin ningún bucle de Python? La desviación estándar es trivial con numpy.std
, pero la parte de la ventana rodante me topa por completo.
Encontré this publicación de blog con respecto a una ventana en blanco en Numpy, pero no parece ser para matrices 1D.
También puede echar un vistazo a la [proyecto de cuello de botella] (https://github.com/kwgoodman/ cuello de botella), ha incorporado el promedio móvil, estándar, etc. – derchambers