[英]The logic behind `np.nanargmin([np.nan, np.inf]) = 0`
我知道np.nanargmin
在列表中找到不是 NaN 的最小数字。 但是,如果调用数组[np.nan, np.inf]
它会产生0
,这是一个 NaN。 我发现这种行为很奇怪,我只是想知道以这种方式定义np.argmin
的逻辑是什么。
如果您查看np.nanargmin
的文档,它会说:
警告:如果切片仅包含 NaN 和 Inf,则结果不可信。
如果您查看源代码,它具有以下行:
a, mask = _replace_nan(a, np.inf)
所以它用inf
替换所有nan
出现,然后它找到 min (仍然有点问题),这将是argmin([inf, inf])
。
如果您查看源代码,您会看到:
a, mask = _replace_nan(a, np.inf)
res = np.argmin(a, axis=axis)
这意味着它正在用np.nan
替换np.inf
。 由于重复值的np.argmin
返回该值的第一个实例,因此np.argmin([np.inf, np.inf])
返回0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.