當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy nan_to_num用法及代碼示例


本文簡要介紹 python 語言中 numpy.nan_to_num 的用法。

用法:

numpy.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)

將 NaN 替換為零和無窮大的有限數字(默認行為)或用戶使用nan,位置和/或neginf關鍵詞。

如果x不精確,NaN 被零或用戶定義的值替換nan關鍵字,無窮大被替換為可表示的最大有限浮點值x.dtype或由用戶定義的值位置關鍵字和 -infinity 被可表示的最負有限浮點值替換x.dtype或由用戶定義的值neginf關鍵詞。

對於複雜的 dtypes,上述內容分別應用於 x 的每個實部和虛部。

如果 x 不是不精確的,則不進行替換。

參數

x 標量或類似數組

輸入數據。

copy 布爾型,可選

是創建 x (True) 的副本還是就地替換值 (False)。僅當轉換為數組不需要副本時,才會發生就地操作。默認為真。

nan 整數,浮點數,可選

用於填充NaN值的值。如果未傳遞任何值,則 NaN 值將替換為 0.0。

posinf 整數,浮點數,可選

用於填充正無窮大值的值。如果沒有傳遞任何值,那麽正無窮大值將被替換為一個非常大的數字。

neginf 整數,浮點數,可選

用於填充負無窮大值的值。如果未傳遞任何值,則負無窮大值將被替換為非常小的(或負)數。

返回

out ndarray

x, 替換了非有限值。如果numpy.copy是 False,這可能是x本身。

注意

NumPy 使用 IEEE 二進製浮點算術標準 (IEEE 754)。這意味著“Not a Number”並不等於無窮大。

例子

>>> np.nan_to_num(np.inf)
1.7976931348623157e+308
>>> np.nan_to_num(-np.inf)
-1.7976931348623157e+308
>>> np.nan_to_num(np.nan)
0.0
>>> x = np.array([np.inf, -np.inf, np.nan, -128, 128])
>>> np.nan_to_num(x)
array([ 1.79769313e+308, -1.79769313e+308,  0.00000000e+000, # may vary
       -1.28000000e+002,  1.28000000e+002])
>>> np.nan_to_num(x, nan=-9999, posinf=33333333, neginf=33333333)
array([ 3.3333333e+07,  3.3333333e+07, -9.9990000e+03, 
       -1.2800000e+02,  1.2800000e+02])
>>> y = np.array([complex(np.inf, np.nan), np.nan, complex(np.nan, np.inf)])
array([  1.79769313e+308,  -1.79769313e+308,   0.00000000e+000, # may vary
     -1.28000000e+002,   1.28000000e+002])
>>> np.nan_to_num(y)
array([  1.79769313e+308 +0.00000000e+000j, # may vary
         0.00000000e+000 +0.00000000e+000j,
         0.00000000e+000 +1.79769313e+308j])
>>> np.nan_to_num(y, nan=111111, posinf=222222)
array([222222.+111111.j, 111111.     +0.j, 111111.+222222.j])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.nan_to_num。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。