当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。