2

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

绘制列表的值 x vs 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值(参见图2),我想找到该值最大的确切索引。

4

1 回答 1

0

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

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

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

于 2016-09-20T06:02:36.070 回答