我正在进行一些代码优化。目前,我使用pandas rolling_mean和rolling_std来计算来自地震仪器的时间序列数据的归一化互相关。由于非相关技术原因,我只对这些pandas滚动均值和滚动标准调用的输出的每个第N个值感兴趣,所以我正在寻找只计算每个第N个值。我可能不得不编写一个cython代码来执行此操作,但我不想这样做。这是一个例子:
import pandas as pd
import numpy as np
As=5000 #Array size
as=150 #Moving window size
N=3 # only interested in every N values of output array
ar=np.random.rand(As) # generate generic random array
RSTD=pd.rolling_std(ar,as)[as-1:] # dont return the nans before widows overlap
foo=RSTD[::N] # use array indexing to decimate RSTD to only return every Nth value
是否有一个好的熊猫方法只计算RSTD的每个第N个值而不是计算所有的值并去除?
由于