簡體   English   中英

如何將“ np.inf”轉換為整數類型?

[英]How can I convert 'np.inf' to an integer type?

我想將np.inf的返回類型轉換為int ,默認情況下它將返回float類型。

我已經嘗試了以下方法,但是都給出了錯誤。

int(np.inf)

OverflowError:無法將浮點無窮大轉換為整數

(np.inf).astype(int64)

AttributeError:“ float”對象沒有屬性“ astype”

浮點數有一個標准:“ IEEE 754”(不是特定於python)。 該標准為+/- Infinity和NaN保留了一些特殊的字節序列。 對於整數,不保留此類特殊值,因此不可能具有int無限大。

我做了一些實驗:您可以執行np.array([np.inf]).astype(int)[0]這將為您提供-9223372036854775808-(2 ** 64)/2 )。 np.array([np.nan]).astype(int)[0]也產生相同的值。

不幸的是,由於注釋表明沒有,但如果您知道所需的整數類型,則可以使用np.iinfo並選擇max或min

np.iinfo(np.int32).max  # ---- 2147483647

np.iinfo(np.int32).min  # ---- -2147483648

np.iinfo(np.int64).max  # ---- 9223372036854775807

np.iinfo(np.int64).min  # ---- -9223372036854775808

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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