numpy.nanvar#
- numpy.nanvar(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>, *, where=<no value>, mean=<no value>, correction=<no value>)[原始碼]#
沿指定軸計算變異數,同時忽略 NaN 值。
傳回陣列元素的變異數,這是分布分散程度的量測。變異數預設為針對展平陣列計算,否則會針對指定的軸計算。
對於全為 NaN 的切片或自由度為零的切片,會傳回 NaN 並引發 RuntimeWarning。
- 參數:
- aarray_like
包含想要計算變異數的數字的陣列。如果 a 不是陣列,則會嘗試轉換。
- axis{int, int 元組, None},選用
計算變異數的軸或軸。預設值是計算展平陣列的變異數。
- dtype資料類型,選用
用於計算變異數的類型。對於整數類型陣列,預設值為
float64
;對於浮點類型陣列,則與陣列類型相同。- outndarray,選用
要在其中放置結果的替代輸出陣列。它必須具有與預期輸出相同的形狀,但必要時會轉換類型。
- ddof{int, float},選用
「Delta 自由度」:計算中使用的除數為
N - ddof
,其中N
代表非 NaN 元素的數量。預設情況下,ddof 為零。- keepdimsbool,選用
如果設定為 True,則縮減的軸會保留在結果中,作為大小為一的維度。使用此選項,結果將針對原始 a 正確廣播。
- wherearray_like of bool,選用
要包含在變異數中的元素。有關詳細資訊,請參閱
reduce
。版本 1.22.0 新增功能。
- meanarray_like,選用
提供平均值以防止重新計算。平均值應具有與使用
keepdims=True
計算時相同的形狀。平均值計算的軸應與此 var 函式呼叫中使用的軸相同。版本 2.0.0 新增功能。
- correction{int, float},選用
與 Array API 相容的
ddof
參數名稱。一次只能提供其中一個。版本 2.0.0 新增功能。
- 傳回:
- variancendarray,請參閱上方的 dtype 參數
如果 out 為 None,則傳回包含變異數的新陣列,否則傳回對輸出陣列的參考。如果 ddof >= 切片中非 NaN 元素的數量,或切片僅包含 NaN,則該切片的結果為 NaN。
註解
變異數是與平均值平方偏差的平均值,即
var = mean(abs(x - x.mean())**2)
。平均值通常計算為
x.sum() / N
,其中N = len(x)
。但是,如果指定了 ddof,則會改用除數N - ddof
。在標準統計實務中,ddof=1
提供假設無限母體變異數的無偏估計值。ddof=0
提供常態分布變數變異數的最大概似估計值。請注意,對於複數,在平方之前會取絕對值,因此結果始終為實數且非負數。
對於浮點輸入,變異數會使用與輸入相同的精確度計算。根據輸入資料,這可能會導致結果不準確,尤其是對於
float32
(請參閱下面的範例)。使用dtype
關鍵字指定更高精度的累加器可以緩解此問題。為了使此函式適用於 ndarray 的子類別,它們必須使用 kwarg keepdims 定義
sum
範例
>>> import numpy as np >>> a = np.array([[1, np.nan], [3, 4]]) >>> np.nanvar(a) 1.5555555555555554 >>> np.nanvar(a, axis=0) array([1., 0.]) >>> np.nanvar(a, axis=1) array([0., 0.25]) # may vary