當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。