numpy.cumsum#

numpy.cumsum(a, axis=None, dtype=None, out=None)[source]#

傳回沿著指定軸的元素累加總和。

參數:
aarray_like (類陣列)

輸入陣列。

axis (軸)int, optional (選填)

計算累加總和的軸。預設值 (None) 是計算扁平化陣列的累加總和。

dtype (資料型別)dtype, optional (選填)

傳回陣列的型別以及在其中加總元素的累加器型別。如果未指定 dtype,則預設為 a 的 dtype,除非 a 具有整數 dtype,且其精度低於預設平台整數的精度。在這種情況下,將使用預設平台整數。

outndarray, optional (選填)

用於放置結果的替代輸出陣列。它必須具有與預期輸出相同的形狀和緩衝區長度,但必要時將轉換型別。有關更多詳細資訊,請參閱 輸出型別判斷

傳回值:
cumsum_along_axis (沿軸累加總和)ndarray.

除非指定了 out,否則會傳回一個包含結果的新陣列,在這種情況下,會傳回對 out 的參考。結果的大小與 a 相同,並且如果 axis 不是 None 或 a 是一維陣列,則形狀與 a 相同。

另請參閱

cumulative_sum

與 Array API 相容的 cumsum 替代方案。

sum

陣列元素總和。

trapezoid

使用複合梯形法則積分陣列值。

diff

計算沿著指定軸的第 n 個離散差分。

註解

當使用整數型別時,算術是模組化的,並且在溢位時不會引發錯誤。

cumsum(a)[-1] 對於浮點數值可能不等於 sum(a),因為 sum 可能使用成對求和常式,從而減少捨入誤差。有關更多資訊,請參閱 sum

範例

>>> import numpy as np
>>> a = np.array([[1,2,3], [4,5,6]])
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> np.cumsum(a)
array([ 1,  3,  6, 10, 15, 21])
>>> np.cumsum(a, dtype=float)     # specifies type of output value(s)
array([  1.,   3.,   6.,  10.,  15.,  21.])
>>> np.cumsum(a,axis=0)      # sum over rows for each of the 3 columns
array([[1, 2, 3],
       [5, 7, 9]])
>>> np.cumsum(a,axis=1)      # sum over columns for each of the 2 rows
array([[ 1,  3,  6],
       [ 4,  9, 15]])

cumsum(b)[-1] 可能不等於 sum(b)

>>> b = np.array([1, 2e-9, 3e-9] * 1000000)
>>> b.cumsum()[-1]
1000000.0050045159
>>> b.sum()
1000000.0050000029