numpy.nan_to_num #

麻木的。nan_to_num ( x , copy = True , nan = 0.0 , posinf = None , neginf = None ) [来源] #

将 NaN 替换为零,将无穷大替换为大的有限数(默认行为)或用户使用nanposinf和/或neginf关键字定义的数字。

如果x不精确,NaN 将被零或关键字中的用户定义值替换 ,无穷大将被posinf关键字中的用户定义值 nan可表示的最大有限浮点值替换,-infinity 将被最负的有限值替换由neginf关键字中的用户定义值表示的浮点值。x.dtypex.dtype

对于复数数据类型,上述内容分别应用于x的每个实部和虚部。

如果x不是不精确,则不进行替换。

参数
x标量或类似数组

输入数据。

复制布尔值,可选

是否创建x的副本(True)或就地替换值(False)。仅当转换为数组不需要副本时,才会发生就地操作。默认为 True。

1.13 版本中的新功能。

nan int,浮点数,可选

用于填充 NaN 值的值。如果未传递任何值,则 NaN 值将替换为 0.0。

1.17 版本中的新增功能。

posinf int、浮点数、可选

用于填充正无穷值的值。如果没有传递任何值,则正无穷大值将被替换为一个非常大的数字。

1.17 版本中的新增功能。

neginf int,浮点数,可选

用于填充负无穷值的值。如果没有传递任何值,则负无穷大值将被替换为非常小的(或负数)数字。

1.17 版本中的新增功能。

返回
输出数组

x,替换非有限值。如果copy为 False,则这可能是x本身。

也可以看看

isinf

显示哪些元素是正无穷大或负无穷大。

isneginf

显示哪些元素是负无穷大。

isposinf

显示哪些元素是正无穷大。

isnan

显示哪些元素不是数字 (NaN)。

isfinite

显示哪些元素是有限的(不是 NaN,不是无穷大)

笔记

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])