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


Python dask.array.cumsum用法及代碼示例


用法:

dask.array.cumsum(x, axis=None, dtype=None, out=None, method='sequential')

返回沿給定軸的元素的累積和。

此文檔字符串是從 numpy.cumsum 複製的。

可能存在與 Dask 版本的一些不一致之處。

Dask 添加了一個額外的僅關鍵字參數 method

方法{‘sequential’, ‘blelloch’},可選

選擇用於執行 cumsum 的方法。默認為‘sequential’。

  • ‘sequential’ 在當前塊之前執行每個先前塊的cumsum。
  • ‘blelloch’ 是一個 work-efficient 並行 cumsum。它通過首先獲取每個塊的總和並通過二叉樹組合總和來公開並行性。根據工作負載、調度程序和硬件,此方法可能更快或更節省內存。更多的基準測試是必要的。

參數

a數組(在 Dask 中不支持)

輸入數組。

axis整數,可選

計算累積和的軸。默認值 (None) 是計算展平數組上的 cumsum。

dtypedtype,可選

返回數組的類型和對元素求和的累加器的類型。如果未指定 dtype ,則默認為 a 的 dtype,除非 a 具有精度小於默認平台整數的整數 dtype。在這種情況下,將使用默認平台整數。

outndarray,可選

用於放置結果的替代輸出數組。它必須具有與預期輸出相同的形狀和緩衝區長度,但如果需要,類型將被強製轉換。有關更多詳細信息,請參閱輸出類型確定。

返回

cumsum_along_axis數組。

除非指定out,否則將返回一個保存結果的新數組,在這種情況下會返回對out 的引用。如果 axis 不是 None 或 a 是一維數組,則結果的大小與 a 相同,形狀與 a 相同。

注意

使用整數類型時算術是模塊化的,溢出時不會引發錯誤。

對於浮點值,cumsum(a)[-1] 可能不等於 sum(a),因為 sum 可能使用成對求和例程,從而減少了 roundoff-error。有關詳細信息,請參閱sum

例子

>>> 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

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.cumsum。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。