2016-09-20 37 views
1

我有一个包含43142行和2列的.CSV文件(列表)。Python-获得间隔的最大值

当绘制列表中的值x对y:

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值中找到最大值和相应的索引。

e.g,如果有在间隔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] 

这将返回对应于给定范围内的最大y值的单个指标。

+0

谢谢安格斯。这是否给了我y最大的指数?或者我需要使用np.argmax? –

+0

这给出了当xmin

+0

它的确如此。抱歉耽搁了!谢谢 –