maxframe.tensor.nanprod#

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

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

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

参数:
  • 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 (bool, optional) -- 如果为True,则在结果中保留被归约的轴作为大小为1的维度。使用此选项,结果将能够正确地与原始`arr`进行广播。

返回:

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

返回类型:

Tensor

参见

mt.prod

跨数组传播NaN的乘积。

isnan

显示哪些元素是NaN。

示例

>>> import maxframe.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.])