maxframe.tensor.nancumprod#

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

返回给定轴上张量元素的累积乘积,将非数字(NaN)视为1。遇到 NaN 时累积乘积不会改变,前导的 NaN 会被替换为1。

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

参数:
  • a (array_like) -- 输入张量。

  • axis (int, optional) -- 计算累积乘积的轴。默认情况下,输入会被展平。

  • dtype (dtype, optional) -- 返回张量的类型,以及元素相乘时使用的累加器类型。如果未指定 dtype,则默认为 a 的 dtype,除非 a 是精度低于默认平台整数的整数类型。在这种情况下,将使用默认平台整数。

  • out (Tensor, optional) -- 用于放置结果的替代输出张量。它必须具有与预期输出相同的形状和缓冲区长度,但必要时结果值的类型将被转换。

返回:

nancumprod -- 返回一个包含结果的新数组,除非指定了 out,此时返回 out

返回类型:

Tensor

参见

mt.cumprod

对数组进行累积乘积运算,并传播 NaN。

isnan

显示哪些元素是 NaN。

示例

>>> import maxframe.tensor as mt
>>> mt.nancumprod(1).execute()
array([1])
>>> mt.nancumprod([1]).execute()
array([1])
>>> mt.nancumprod([1, mt.nan]).execute()
array([ 1.,  1.])
>>> a = mt.array([[1, 2], [3, mt.nan]])
>>> mt.nancumprod(a).execute()
array([ 1.,  2.,  6.,  6.])
>>> mt.nancumprod(a, axis=0).execute()
array([[ 1.,  2.],
       [ 3.,  2.]])
>>> mt.nancumprod(a, axis=1).execute()
array([[ 1.,  2.],
       [ 3.,  3.]])