mars.tensor.nancumprod#

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

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

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

Parameters
  • a (array_like) – 输入张量。

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

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

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

Returns

nancumprod – 返回一个新的数组,其中包含结果,除非指定了 out,在这种情况下则返回该数组。

Return type

张量

另请参阅

mt.cumprod

沿数组传播NaN的累计乘积。

isnan

显示哪些元素是 NaN。

示例

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