numpy.cumulative_sum#
- numpy.cumulative_sum(x, /, *, axis=None, dtype=None, out=None, include_initial=False)[source]#
返回沿著指定軸的元素累計總和。
此函數是與 Array API 相容,可替代
numpy.cumsum
的方案。- 參數:
- xarray_like (類陣列)
輸入陣列。
- axisint, optional (選填)
計算累計總和的軸。預設值 (None) 僅允許用於一維陣列。對於多維陣列,
axis
為必填。- dtypedtype, optional (選填)
返回陣列的型別以及元素相加的累加器的型別。如果未指定
dtype
,則預設為x
的 dtype,除非x
具有整數 dtype,且其精度低於預設平台整數。在這種情況下,將使用預設平台整數。- outndarray, optional (選填)
用於放置結果的替代輸出陣列。它必須具有與預期輸出相同的形狀和緩衝區長度,但必要時會轉換型別。請參閱 輸出型別判斷 以取得更多詳細資訊。
- include_initialbool, optional (選填)
布林值,指示是否將初始值 (零) 作為輸出中的第一個值包含在內。當
include_initial=True
時,輸出的形狀與輸入的形狀不同。預設值:False
。
- 回傳:
- cumulative_sum_along_axisndarray
除非指定了
out
,否則會返回一個包含結果的新陣列,在這種情況下,將返回對out
的參考。如果include_initial=False
,則結果的形狀與x
相同。
注意事項
當使用整數型別時,算術是模組化的,且溢位時不會引發錯誤。
對於浮點數值,
cumulative_sum(a)[-1]
可能不等於sum(a)
,因為sum
可能使用成對求和常式,從而減少捨入誤差。 有關更多資訊,請參閱sum
。範例
>>> a = np.array([1, 2, 3, 4, 5, 6]) >>> a array([1, 2, 3, 4, 5, 6]) >>> np.cumulative_sum(a) array([ 1, 3, 6, 10, 15, 21]) >>> np.cumulative_sum(a, dtype=float) # specifies type of output value(s) array([ 1., 3., 6., 10., 15., 21.])
>>> b = np.array([[1, 2, 3], [4, 5, 6]]) >>> np.cumulative_sum(b,axis=0) # sum over rows for each of the 3 columns array([[1, 2, 3], [5, 7, 9]]) >>> np.cumulative_sum(b,axis=1) # sum over columns for each of the 2 rows array([[ 1, 3, 6], [ 4, 9, 15]])
cumulative_sum(c)[-1]
可能不等於sum(c)
>>> c = np.array([1, 2e-9, 3e-9] * 1000000) >>> np.cumulative_sum(c)[-1] 1000000.0050045159 >>> c.sum() 1000000.0050000029