maxframe.tensor.nansum#

maxframe.tensor.nansum(a, axis=None, dtype=None, out=None, keepdims=None)[源代码]#

返回给定轴上数组元素的总和,并将非数字(NaN)视为零。

对于全为 NaN 或空的切片,返回零。

参数:
  • a (array_like) -- 包含所需总和数字的张量。如果 a 不是张量,则会尝试转换。

  • axis (int, optional) -- 计算总和的轴。默认计算展平数组的总和。

  • dtype (data-type, optional) -- 返回张量的类型以及元素相加时累加器的类型。默认使用 a 的 dtype。一个例外是当 a 具有比平台 (u)intp 更低精度的整数类型时。在这种情况下,默认值将是 (u)int32 或 (u)int64,具体取决于平台是 32 位还是 64 位。对于非精确输入,dtype 必须是非精确的。

  • out (Tensor, optional) -- 用于放置结果的替代输出张量。默认为 None。如果提供,它必须与预期输出具有相同形状,但如有必要,类型将被转换。有关详细信息,请参见 doc.ufuncs。将 NaN 转换为整数可能会产生意外结果。

  • keepdims -- 如果设置为 True,则被规约的轴在结果中保留为大小为一的维度。使用此选项,结果将能正确地与原始 a 进行广播。

返回:

nansum -- 除非指定了 out,否则将返回一个包含结果的新张量。结果的大小与 a 相同,如果 axis 不为 None 或 a 是一维数组,则形状也相同。

返回类型:

Tensor.

参见

mt.sum

对张量进行求和并传播 NaN。

isnan

显示哪些元素是 NaN。

isfinite

显示哪些元素不是 NaN 或 +/-inf。

备注

如果同时存在正无穷和负无穷,总和将是非数字(NaN)。

示例

>>> import maxframe.tensor as mt
>>> mt.nansum(1).execute()
1
>>> mt.nansum([1]).execute()
1
>>> mt.nansum([1, mt.nan]).execute()
1.0
>>> a = mt.array([[1, 1], [1, mt.nan]])
>>> mt.nansum(a).execute()
3.0
>>> mt.nansum(a, axis=0).execute()
array([ 2.,  1.])
>>> mt.nansum([1, mt.nan, mt.inf]).execute()
inf
>>> mt.nansum([1, mt.nan, mt.NINF]).execute()
-inf
>>> mt.nansum([1, mt.nan, mt.inf, -mt.inf]).execute() # both +/- infinity present
nan