#python #pandas #scipy
#python #панды #scipy
Вопрос:
Я использую 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, np.greater_equal, order = noise_filter, mode = 'clip')[0]
Так что это будет выглядеть
res = argrelextrema(numbers, np.greater_equal amp; (index > noise_filter), order = noise_filter, mode = 'clip')[0]
Простое решение, когда я создаю фрагмент res
res = res[noise_filter:]
мне это не подходит.
Ответ №1:
если вы хотите отфильтровать все, что находится ниже вашего noise_filter
filtered = [n for n in res if n > noise_filter]