[英]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.