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 в данном диапазоне.