numpy.ufunc.accumulate¶
-
ufunc.
accumulate
(array, axis=0, dtype=None, out=None)¶ 累加将运算符应用于所有元素的结果。
对于一维数组,accumulate产生的结果等效于:
r = np.empty(len(A)) t = op.identity # op = the ufunc being applied to A's elements for i in range(len(A)): t = op(t, A[i]) r[i] = t return r
例如,add.accumulate()等效于np.cumsum()。
对于多维数组,只沿一个轴应用累加(默认为轴零;参见下面的示例),因此如果想要在多个轴上累积,则需要重复使用。
参数: 数组:array_like
要执行的数组。
axis:int,可选
沿其应用积累的轴;默认为零。
dtype:数据类型代码,可选
数据类型用于表示中间结果。默认为输出数组的数据类型(如果提供)或输入数组的数据类型(如果未提供输出数组)。
out:ndarray,可选
存储结果的位置。如果未提供,则返回新分配的数组。
返回: r:ndarray
累加值。如果提供out,则r是对out的引用。
例子
1-D数组示例:
>>> np.add.accumulate([2, 3, 5]) array([ 2, 5, 10]) >>> np.multiply.accumulate([2, 3, 5]) array([ 2, 6, 30])
2-D数组示例:
>>> I = np.eye(2) >>> I array([[ 1., 0.], [ 0., 1.]])
沿轴0(行),向下列累积:
>>> np.add.accumulate(I, 0) array([[ 1., 0.], [ 1., 1.]]) >>> np.add.accumulate(I) # no axis specified = axis zero array([[ 1., 0.], [ 1., 1.]])
沿轴1(列),通过行累积:
>>> np.add.accumulate(I, 1) array([[ 1., 1.], [ 0., 1.]])