我有一个振动信号,我想用均方根平滑信号,滚动窗口为21天。数据以分钟为单位,因此21天的滚动窗口意味着21*1440[21*24*60]。 有没有类似的方法:
# Dummy approach
df['Rolling_rms'] = df['signal'].rolling(21*1440).rms()
我正在尝试一种使用for循环的方法,这种方法太耗时了:
# Function for calculating RMS
def rms_calc(ser):
return np.sqrt(np.mean(ser**2))
for i in range(0,len(signal)):
j = 21*1440+i
print(rms_calc(df[signal][i:j]))
关于@mykola zotko的回答:
apply
方法来获得平方根;但是,传递the ^{全文:
替代方法
如果您想在计算RMS(我认为在振动分析中很常见)之前将数据窗口归零,那么计算在数学上等同于计算滚动标准偏差。在这种情况下,您也可以只使用the ^{} method for the ^{} object :
您可以将方法
apply
与自定义函数一起使用:相关问题 更多 >
编程相关推荐