mars.tensor.sum#

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

在给定轴上的张量元素之和。

Parameters
  • a (array_like) – 要求和的元素。

  • axis (Noneinttupleints, 可选) –

    在其上执行求和的轴或轴。默认情况下,axis=None,将对输入张量的所有元素进行求和。如果axis为负数,则从最后一个轴开始计数。

    如果axis是一个整数的元组,将对元组中指定的所有轴执行求和,而不是单个轴或之前的所有轴。

  • dtype (dtype, 可选) – 返回的张量的类型以及累加器中元素求和的类型。默认情况下使用a的dtype,除非a的整数dtype的精度低于默认平台整数。在这种情况下,如果a是有符号的,则使用平台整数;而如果a是无符号的,则使用与平台整数相同精度的无符号整数。

  • out (Tensor, 可选) – 备用输出张量,用于放置结果。它必须具有与预期输出相同的形状,但输出值的类型在必要时将被转换。

  • keepdims (bool, 可选) –

    如果设置为True,减少的轴会在结果中保留为大小为一的维度。使用此选项,结果将正确地与输入张量进行广播。

    如果传递的是默认值,则keepdims不会传递给Tensor的子类的sum方法,然而任何非默认值将会传递。如果子类的sum方法未实现keepdims,将会引发任何异常。

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

Returns

sum_along_axis – 一个与 a 形状相同的数组,指定的轴被移除。如果 a 是一个 0-d 张量,或者 axis 为 None,则返回一个标量。如果指定了输出数组,将返回对 out 的引用。

Return type

张量

另请参阅

Tensor.sum

等效方法。

cumsum

张量元素的累积和。

trapz

使用复合梯形法则对张量值进行积分。

mean, average

备注

使用整数类型时,算术运算是模运算,溢出时不会引发错误。

一个空数组的和是中性元素0:

>>> import mars.tensor as mt
>>> mt.sum([]).execute()
0.0

示例

>>> mt.sum([0.5, 1.5]).execute()
2.0
>>> mt.sum([0.5, 0.7, 0.2, 1.5], dtype=mt.int32).execute()
1
>>> mt.sum([[0, 1], [0, 5]]).execute()
6
>>> mt.sum([[0, 1], [0, 5]], axis=0).execute()
array([0, 6])
>>> mt.sum([[0, 1], [0, 5]], axis=1).execute()
array([1, 5])

如果累加器太小,溢出会发生:

>>> mt.ones(128, dtype=mt.int8).sum(dtype=mt.int8).execute()
-128