Python-在一个区间内获得最大值

时间:2016-09-20 05:26:33

标签: python python-2.7 numpy argmax

我有一个包含43142行和2列的.CSV文件(列表)。

在绘制列表的值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

我想要做的是,给定峰值所在的x值的近似间隔,找到列表中的最大值和相应的索引。

例如如果区间 x =(2720,2730)中的最大 y 值(参见图{{ 3}}),我想找到值最大的确切索引。

1 个答案:

答案 0 :(得分:0)

如果你有一个范围xmin < x < xmax,那么这应该有效(采用x=filename[:,0]y=filename[:,1]):

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

这将返回与给定范围内的最大y值对应的单个索引。