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


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


用法:

dask.array.sum(a, axis=None, dtype=None, keepdims=False, split_every=None, out=None)

給定軸上的數組元素之和。

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

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

參數

aarray_like

要總結的元素。

axis無或整數或整數元組,可選

沿其執行求和的軸。默認值,axis=None,將對輸入數組的所有元素求和。如果軸為負數,則從最後一個軸計數到第一個軸。

如果axis是整數元組,則對元組中指定的所有軸執行求和,而不是像以前那樣對單個軸或所有軸執行求和。

dtypedtype,可選

返回數組的類型和元素相加的累加器的類型。默認情況下使用a 的dtype,除非a 的整數dtype 的精度低於默認平台整數。在這種情況下,如果a 有符號則使用平台整數,而如果a 無符號則使用與平台整數具有相同精度的無符號整數。

outndarray,可選

用於放置結果的替代輸出數組。它必須具有與預期輸出相同的形狀,但如果需要,輸出值的類型將被強製轉換。

keepdims布爾型,可選

如果將其設置為 True,則縮小的軸將作為尺寸為 1 的尺寸留在結果中。使用此選項,結果將針對輸入數組正確廣播。

如果傳遞了默認值,那麽 keepdims 將不會傳遞給 ndarray 的子類的 sum 方法,但是任何非默認值都會傳遞。如果 sub-class' 方法未實現 keepdims,則將引發任何異常。

initial標量,可選(Dask 中不支持)

總和的起始值。有關詳細信息,請參閱~numpy.ufunc.reduce

where數組 of bool,可選(在 Dask 中不支持)

要包含在總和中的元素。有關詳細信息,請參閱~numpy.ufunc.reduce

返回

sum_along_axisndarray

a 具有相同形狀的數組,已刪除指定的軸。如果 a 是一個 0 維數組,或者如果 axis 是 None,則返回一個標量。如果指定了輸出數組,則返回對out 的引用。

注意

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

空數組的和是中性元素 0:

>>> np.sum([])  
0.0

對於浮點數, sum (和 np.add.reduce )的數值精度通常受到直接將每個數字單獨添加到結果中的限製,從而導致每一步的舍入誤差。但是,numpy 通常會使用數值更好的方法(部分成對求和),從而提高許多use-cases 的精度。當沒有給出 axis 時,總是會提供這種改進的精度。當給定axis 時,將取決於對哪個軸求和。從技術上講,為了提供可能的最佳速度,僅當求和沿內存中的快軸時才使用改進的精度。請注意,確切的精度可能會因其他參數而異。與 NumPy 相比,Python 的 math.fsum 函數使用更慢但更精確的求和方法。尤其是在對大量較低精度的浮點數求和時,例如 float32 ,數值錯誤會變得很嚴重。在這種情況下,建議使用 dtype=”float64” 以使用更高的輸出精度。

例子

>>> np.sum([0.5, 1.5])  
2.0
>>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)  
1
>>> np.sum([[0, 1], [0, 5]])  
6
>>> np.sum([[0, 1], [0, 5]], axis=0)  
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)  
array([1, 5])
>>> np.sum([[0, 1], [np.nan, 5]], where=[False, True], axis=1)  
array([1., 5.])

如果累加器太小,就會發生溢出:

>>> np.ones(128, dtype=np.int8).sum(dtype=np.int8)  
-128

您還可以使用非零值開始求和:

>>> np.sum([10], initial=5)  
15

相關用法


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