我想获取包含 NaN 的 numpy 数组的最小值的索引,我希望它们被忽略
>>> a = array([ nan, 2.5, 3., nan, 4., 5.])
>>> a
array([ NaN, 2.5, 3. , NaN, 4. , 5. ])
如果我运行 argmin,它会返回第一个 NaN 的索引
>>> a.argmin()
0
我用 Infs 替换 NaN,然后运行 argmin
>>> a[isnan(a)] = Inf
>>> a
array([ Inf, 2.5, 3. , Inf, 4. , 5. ])
>>> a.argmin()
1
我的困境如下:我宁愿不将 NaN 更改为 Infs,然后在我完成 argmin 后返回(因为 NaN 稍后在代码中具有含义)。有一个更好的方法吗?
还有一个问题,如果a的所有原始值都是 NaN,结果应该是什么?在我的实现中,答案是 0