2016-09-20 8 views
1

43142 개의 행과 2 개의 열을 포함하는 .CSV 파일 (목록)이 있습니다. Y 대 목록의 값 X를 플롯 할 때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

내가 뭘하고 싶은 것은, aproximate 주어집니다 간격이 피크가 위치하는 x 값에서 최대 값과 해당 색인을 목록에서 찾습니다.

예컨대은 X = (2720,2730)는 (2 그림 참조), I의 값이 최대가되는 정확한 인덱스를 찾을 간격의 최대 Y 값이 있다면. 당신이 xmin < x < xmax 다음이 작동합니다 범위가있는 경우

답변

0

(x=filename[:,0]y=filename[:,1]을 복용) :

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

이 주어진 범위에서 최대 Y 값에 해당하는 단일 인덱스를 반환합니다.

+0

Angus에 감사드립니다. 이 인덱스는 y가 최대 인 인덱스를 제공합니까? 또는 np.argmax를 사용해야합니까? –

+0

그러면 xmin

+0

그랬습니다. 지연 돼서 죄송합니다! 고맙습니다 –