当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy ufunc.accumulate用法及代码示例


本文简要介绍 python 语言中 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 array_like

要操作的数组。

axis 整数,可选

应用累积的轴;默认为零。

dtype 数据类型代码,可选

用于表示中间结果的数据类型。如果提供,则默认为输出数组的数据类型,如果没有提供输出数组,则默认为输入数组的数据类型。

out ndarray,None,或 ndarray 和 None 的元组,可选

存储结果的位置。如果未提供或 None,则返回一个新分配的数组。为了与 ufunc.__call__ 保持一致,如果作为关键字给出,则可以将其包装在 1 元素元组中。

返回

r ndarray

累计值。如果提供了 out,则 r 是对 out 的引用。

例子

一维数组示例:

>>> np.add.accumulate([2, 3, 5])
array([ 2,  5, 10])
>>> np.multiply.accumulate([2, 3, 5])
array([ 2,  6, 30])

二维数组示例:

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

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.ufunc.accumulate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。