Python- 获取区间内的最大值
Python- obtain maximum value in an interval
我有一个包含 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 值的近似间隔,在列表中找到最大值和相应的索引。
e.g 如果区间 x=(2720,2730)[=28 中存在最大 y 值=](参考图2),我想找到值最大的确切索引。
如果你有一个范围 xmin < x < xmax
那么这应该有效(取 x=filename[:,0]
和 y=filename[:,1]
):
idx = np.where(y==np.max(y[(x>xmin)&(x<xmax)]))[0][0]
这将return一个对应于给定范围内最大y值的单个索引。
我有一个包含 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 值的近似间隔,在列表中找到最大值和相应的索引。
e.g 如果区间 x=(2720,2730)[=28 中存在最大 y 值=](参考图2),我想找到值最大的确切索引。
如果你有一个范围 xmin < x < xmax
那么这应该有效(取 x=filename[:,0]
和 y=filename[:,1]
):
idx = np.where(y==np.max(y[(x>xmin)&(x<xmax)]))[0][0]
这将return一个对应于给定范围内最大y值的单个索引。