在numpy数组列中查找某个值的最小和最大索引

问题描述

我有一个 2D numpy 数组,如下所示:

['0.0002126159536893578' '0']
['0.000489237210943365' '0']
 ...
['6.998729658062154e-05' '3']
['7.956089498242174e-07' '3']
['9.178127570732645e-06' '3']]

它首先按第二列排序,然后按第一列排序,现在我需要获取第二列中每个值的第一次和最后一次出现的索引,以便我可以提取第一列的值(如果有一个更简单的方法会很棒=D)

解决方法

如果您的数据已经按第二列排序,您可以尝试:

uniques,idx = np.unique(arr[:,1],return_index=True)

然后 idx 包含 uniques 中每个唯一值的第一次出现。