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