mars.tensor.nanprod#

mars.tensor.nanprod(a, axis=None, dtype=None, out=None, keepdims=None, combine_size=None)[来源]#

返回给定轴上数组元素的乘积,将非数字(NaNs)视为1。

全为NaN或为空的切片返回一个。

Parameters
  • a (array_like) – 包含所需乘积的数字的张量。如果a 不是张量,将尝试进行转换。

  • axis (int, 可选) – 计算产品的轴。默认情况下计算扁平化张量的产品。

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

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

  • keepdims (bool, 可选) – 如果为 True,则被减少的轴将作为大小为一的维度保留在结果中。使用此选项,结果将能够正确地与原始 arr 进行广播。

  • combine_size (int, 可选) – 拼接的块数。

Returns

nanprod – 返回一个新的张量,保存结果,除非指定了out,在这种情况下返回该值。

Return type

张量

另请参阅

mt.prod

在数组中传播NaNs的产品。

isnan

显示哪些元素是 NaN。

示例

>>> import mars.tensor as mt
>>> mt.nanprod(1).execute()
1
>>> mt.nanprod([1]).execute()
1
>>> mt.nanprod([1, mt.nan]).execute()
1.0
>>> a = mt.array([[1, 2], [3, mt.nan]])
>>> mt.nanprod(a).execute()
6.0
>>> mt.nanprod(a, axis=0).execute()
array([ 3.,  2.])