微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决查找最大值并过滤第一个值

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。