2016-09-20 1 views
1

Ich habe eine CSV-Datei (eine Liste), die 43142 Zeilen und 2 Spalten enthält.Python-erhalten maximalen Wert in einem Intervall

Wenn die Werte x vs y Liste Plotten:

import numpy as np 
    import matplotlib.pyplot as plt 

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

ich einen Graphen erhalten, die mehrere Maxima Werte hat und sieht wie folgt aus: x vs y values of list.CSV

, was ich will zu tun ist, eine Ungefähres gegeben Intervall in den x-Werten, in denen die Peaks positioniert sind, finden Sie die maximalen Werte und die entsprechenden Indizes auf der Liste.

z wenn es ein maximaler y Wert im Intervall x = (2720,2730) (siehe 2 Abbildung), i, in denen den genauen Index finden wollen, dass der Wert maximal ist.

Antwort

0

Wenn Sie einen Bereich haben xmin < x < xmax dann diese funktionieren soll (unter x=filename[:,0] und y=filename[:,1]):

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

Dies wird einen einzigen Index auf den maximalen y-Wert im angegebenen Bereich zurückkehren entspricht.

+0

Danke Angus. Gibt mir das den Index, in dem y maximal ist? oder brauche ich np.argmax? –

+0

Dies gibt Ihnen den Index, bei dem y maximal ist, wenn xmin

+0

Hat es getan. Entschuldigung für die Verspätung! Vielen Dank –

Verwandte Themen