Python- получить максимальное значение в интервале

У меня есть файл.CSV (список), который содержит 43142 строки и 2 столбца.

При построении списка значений х против у:

    import numpy as np
    import matplotlib.pyplot as plt

    filename=np.genfromtxt(list.CSV,delimiter=',')
    plt.plot(filename[:,0],filename[:,1])

Я получаю график, который имеет несколько значений максимумов и выглядит следующим образом: x против y значений list.CSV

Что я хочу сделать, это, учитывая приблизительный интервал в значениях х, в которых расположены пики, найти максимальные значения и соответствующие индексы в списке.

например, если есть максимальное значение y в интервале x = (2720, 2730) (см. рисунок 2), я хочу найти точный индекс, в котором значение является максимальным.

1 ответ

Решение

Если у вас есть диапазон xmin < x < xmax тогда это должно работать (принимая x=filename[:,0] а также y=filename[:,1]):

idx = np.where(y==np.max(y[(x>xmin)&(x<xmax)]))[0][0]

Это вернет единственный индекс, соответствующий максимальному значению y в данном диапазоне.

Другие вопросы по тегам