簡體   English   中英

`np.nanargmin([np.nan, np.inf]) = 0` 背后的邏輯

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM