numpy.
nan_to_num
将NaN替换为零,将无穷大替换为大的有限数(默认行为),或替换为用户使用 nan , posinf 和/或 neginf 关键词。
nan
如果 x 如果不精确,则用零或中的用户定义值替换NaN nan 关键字,无穷大被可表示为的最大有限浮点值替换 x.dtype 或按中的用户定义值 posinf 关键字和-infinity被可表示为的最负的有限浮点值替换 x.dtype 或按中的用户定义值 neginf 关键字。
x.dtype
对于复杂的数据类型,上述内容适用于 x 分别地。
如果 x 不是不准确的,那么就没有替代品了。
输入数据。
是否创建的副本 x (正确)或替换现有值(错误)。仅当强制转换到数组不需要副本时,才会发生就地操作。默认值为true。
1.13 新版功能.
用于填充NaN值的值。如果未传递任何值,则NaN值将替换为0.0。
1.17 新版功能.
用于填充正无穷大值的值。如果未传递任何值,则正无穷大值将替换为非常大的数字。
用来填充无穷大的值。如果未传递任何值,则负无穷大值将替换为非常小(或负)的数字。
x ,替换非有限值。如果 copy 是假的,这可能是 x 本身。
copy
参见
isinf
显示哪些元素是正无穷大或负无穷大。
isneginf
显示哪些元素是负无穷大。
isposinf
显示哪些元素是正无穷大。
isnan
显示哪些元素不是数字(NaN)。
isfinite
显示哪些元素是有限的(不是NaN,不是无穷大)
笔记
numpy使用了IEEE754二进制浮点运算标准。这意味着没有一个数字不等于无穷大。
实例
>>> 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])