Numpy:在数组中获取最小值索引,忽略特定值

4 投票
2 回答
1859 浏览
提问于 2025-04-17 23:16

我想找出数组中最小值的下标,比如:

ind = np.where((arr == arr.min()))

我想修改一下,让我可以忽略某个特定的值。例如:

ind = np.where((arr == arr[arr != value].min()))

上面的解决方案可以,但有没有更好的方法呢?

2 个回答

2

使用NumPy的argmin()函数

ind= np.argmin(arr[arr!=value])
3

你可以先创建一个带有掩码的数组,然后在这个数组上使用 np.where() 函数:

m = np.ma.masked_array(a, mask=(a==value))
np.where(m, m==m.min())

这样就能得到你想要的结果。

撰写回答