numpy.nansum#

numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)[source]#

返回給定軸上陣列元素的總和,並將非數字 (NaNs) 視為零。

在 NumPy 版本 <= 1.9.0 中,對於全為 NaN 或為空的切片,返回 NaN。在以後的版本中,返回零。

引數:
a類陣列物件

包含要求和數字的陣列。如果 a 不是陣列,則嘗試進行轉換。

axis{int, tuple of int, None}, optional

計算總和的軸或多個軸。預設情況是計算展平陣列的總和。

dtype資料型別,可選

返回陣列的型別以及元素求和累加器的型別。預設使用 a 的 dtype。如果 a 具有精度低於平臺 (u)intp 的整數型別,則是一個例外。在這種情況下,預設值將根據平臺是 32 位還是 64 位而定,為 (u)int32 或 (u)int64。對於非精確輸入,dtype 必須是非精確的。

outndarray,可選

用於存放結果的替代輸出陣列。預設值為 None。如果提供,它必須與預期輸出具有相同的形狀,但在必要時會進行型別轉換。有關更多詳細資訊,請參閱 輸出型別確定。將 NaN 轉換為整數可能會產生意想不到的結果。

keepdimsbool,可選

如果設定為 True,則縮減的軸將在結果中保留為大小為 1 的維度。使用此選項,結果將與原始 a 正確廣播。

如果該值不是預設值,則 keepdims 將被傳遞給 meansum 方法(針對 ndarray 的子類)。如果子類方法未實現 keepdims,則會引發異常。

initial標量,可選

求和的起始值。有關詳細資訊,請參閱 reduce

New in version 1.22.0。

wherearray_like of bool,可選

包含在求和中的元素。有關詳細資訊,請參閱 reduce

New in version 1.22.0。

返回:
nansumndarray.

除非指定了 out(此時返回該陣列),否則將返回一個包含結果的新陣列。如果 axis 不為 None 或 a 是 1 維陣列,則結果的大小與 a 相同,形狀也與 a 相同。

另請參閱

numpy.sum

跨陣列求和並傳播 NaN。

isnan

顯示哪些元素是 NaN。

isfinite

顯示哪些元素不是 NaN 或 +/-inf。

備註

如果正無窮大和負無窮大同時存在,則總和將為非數字 (NaN)。

示例

>>> import numpy as np
>>> np.nansum(1)
1
>>> np.nansum([1])
1
>>> np.nansum([1, np.nan])
1.0
>>> a = np.array([[1, 1], [1, np.nan]])
>>> np.nansum(a)
3.0
>>> np.nansum(a, axis=0)
array([2.,  1.])
>>> np.nansum([1, np.nan, np.inf])
inf
>>> np.nansum([1, np.nan, -np.inf])
-inf
>>> with np.errstate(invalid="ignore"):
...     np.nansum([1, np.nan, np.inf, -np.inf]) # both +/- infinity present
np.float64(nan)