dask.array.nan_to_num
dask.array.nan_to_num¶
- dask.array.nan_to_num(*args, **kwargs)¶
将 NaN 替换为零,将无穷大替换为大的有限数(默认行为),或者使用 nan、posinf 和/或 neginf 关键字定义的数字替换。
此文档字符串是从 numpy.nan_to_num 复制的。
Dask 版本可能存在一些不一致性。
如果 x 是不精确的,NaN 会被零或 nan 关键字中用户定义的值替换,无穷大会被 x.dtype 可表示的最大有限浮点值或 posinf 关键字中用户定义的值替换,而负无穷大会被 x.dtype 可表示的最小有限浮点值或 neginf 关键字中用户定义的值替换。
对于复杂的 dtypes,上述操作会分别应用于 x 的实部和虚部。
如果 x 不是不精确的,那么不会进行任何替换。
- 参数
- x标量或类数组对象 (Dask 不支持)
输入数据。
- 复制bool, 可选 (Dask 不支持)
是否创建 x 的副本(True)或就地替换值(False)。就地操作仅在转换为数组不需要副本时发生。默认值为 True。
1.13 新版功能.
- nanint, float, 可选 (Dask 不支持)
用于填充 NaN 值的值。如果没有传递值,则 NaN 值将被替换为 0.0。
1.17 新版功能.
- posinfint, float, 可选 (Dask 不支持)
用于填充正无穷大值的值。如果没有传递值,则正无穷大值将被替换为一个非常大的数字。
1.17 新版功能.
- neginfint, float, 可选 (Dask 不支持)
用于填充负无穷值的值。如果没有传递值,则负无穷值将被替换为一个非常小(或负)的数。
1.17 新版功能.
- 返回
- 出ndarray
x,其中非有限值已被替换。如果 copy 为 False,这可能是 x 本身。
参见
注释
NumPy 使用 IEEE 二进制浮点数算术标准 (IEEE 754)。这意味着非数字 (Not a Number) 并不等同于无穷大。
示例
>>> import numpy as np >>> 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])