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