【问题标题】:Python- obtain maximum value in an intervalPython-在一个区间内获取最大值
【发布时间】:2016-09-20 05:26:32
【问题描述】:

我有一个 .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),我想找到值最大的确切索引。

【问题讨论】:

    标签: python python-2.7 numpy argmax


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢安格斯。这是否给了我 y 最大的索引?还是我需要使用 np.argmax?
    • 这为您提供了当 xmin
    • 确实如此。抱歉耽搁了!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2018-11-15
    • 2018-09-13
    • 2018-01-03
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多