【发布时间】:2021-09-10 07:36:10
【问题描述】:
python新手,我需要找到一个数组在下限之上的最大值, 示例 [1,2,3,4,5 6] 找到大于 3 的最大值以及它的索引位置。实际上,我有一列具有波长/能量(eV),另一列(几列)具有强度,我试图找出最大强度及其波长位置,忽略低于某个波长的激光峰值真实数据。
我试过这样的
df=pandas read file ['....']
column_names = ['a','b',....]
def find_max(x, y, xMax):
return np.max(y[x < xMax])
xMax = 1.9
for i in range(len(column_names)):
max_int_val = find_max(df['eV'], df[column_names[i]], xMax)
max_wav_index = df[column_names[i]].idxmax(max_int_val)
max_wav_val = df["Wavelength"].iloc[max_wav_index]
max_eV_val = df["eV"].iloc[max_wav_index]
然而 max_int_val 似乎是正确的,但 max_wav_index、max_wav_val 和 max_eV_val 似乎是错误的。
我相信正在发生的事情是索引正在使用整个列,而不是在查找索引时被截断的列。
【问题讨论】: