查找最大值并过滤第一个值

问题描述

我使用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]