问题描述
我使用argrelextrema在列表中找到最大值
import pandas as pd
from scipy.signal import argrelextrema
import numpy as np
noise_filter = 3
numbers = pd.Series ([101.5,100,101.1,99,105,22,21,20,19]).to_numpy()
res = argrelextrema(numbers,np.greater_equal,order = noise_filter,mode = 'clip')[0]
print (res)
在此示例中,它返回
[0 4]
如果索引小于noise_filter,我想对其进行过滤。
所以0将被过滤。
我如何在行内完成
res = argrelextrema(numbers,mode = 'clip')[0]
所以看起来像
res = argrelextrema(numbers,np.greater_equal & (index > noise_filter),mode = 'clip')[0]
当我做一片res时,很简单
res = res[noise_filter:]
不适合我。
解决方法
如果要过滤noise_filter以下的所有内容
filtered = [n for n in res if n > noise_filter]