mars.tensor.nan_to_num#

mars.tensor.nan_to_num(x, copy=True, **kwargs)[来源]#

将nan替换为零,将inf替换为大有限数。

如果 x 不精确,NaN 被替换为零,正无穷大和负无穷大被分别替换为 x.dtype 所能表示的最大和最负的有限浮点值。

对于复杂数据类型,上述内容被单独应用于x的每个实部和虚部。

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

Parameters
  • x (类数组) – 输入数据。

  • 复制 (bool, 可选) – 是否创建x的副本(True),或者在原地替换值(False)。只有在转换为数组时不需要复制的情况下,才会进行原地操作。默认值为True。

Returns

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

Return type

张量

另请参阅

isinf

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

isneginf

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

isposinf

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

isnan

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

isfinite

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

备注

Mars使用IEEE标准的二进制浮点数进行算术运算(IEEE 754)。这意味着不是一个数字(Not a Number)不等同于无穷大。

示例

>>> import mars.tensor as mt
>>> x = mt.array([mt.inf, -mt.inf, mt.nan, -128, 128])
>>> mt.nan_to_num(x).execute()
array([  1.79769313e+308,  -1.79769313e+308,   0.00000000e+000,
        -1.28000000e+002,   1.28000000e+002])
>>> y = mt.array([complex(mt.inf, mt.nan), mt.nan, complex(mt.nan, mt.inf)])
>>> mt.nan_to_num(y).execute()
array([  1.79769313e+308 +0.00000000e+000j,
         0.00000000e+000 +0.00000000e+000j,
         0.00000000e+000 +1.79769313e+308j])