2016-09-20 4 views
1

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

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

import numpy as np 
    import matplotlib.pyplot as plt 

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

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

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

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

ответ

0

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

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

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

+0

Спасибо Ангус. Это дает мне индекс, в котором y является максимальным? или мне нужно использовать np.argmax? –

+0

Это дает вам индекс, при котором y является max, когда xmin

+0

Он сделал. Извините за задержку! спасибо –