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

4

我正在尝试获取数组中最小值的索引,例如:

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

我希望修改这个功能,使其能够忽略特定的值。例如:

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

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

意思是更快?还是使用更少的内存?...你的数组大小是多少? - usethedeathstar
2个回答

3
您可以创建一个掩码数组,然后在其上使用np.where()函数:
m = np.ma.masked_array(a, mask=(a==value))
np.where(m, m==m.min())

为您提供所需的内容。


2

使用NumPy的argmin()函数

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

1
argmin 只返回第一个索引。 - gg349

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接