numpy.var
numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=
計算沿指定軸的方差。
傳回數組元素的方差,即分布分布的度量。 預設情況下,将為展平數組計算方差,否則将在指定軸上計算方差。參數 :a :array_like
包含需要方差的數字的數組。
如果a不是數組,則嘗試進行轉換。
axis :None 或 int 或 int類型的tuple, 可選
計算方差的一個或多個軸。
預設值是計算展平數組的方差。
1.7.0版中的新功能。
如果這是一個整數元組,
則對多個軸執行方差,
而不是像以前那樣對單個軸或所有軸執行方差。
dtype :data-type, 可選
用于計算方差的類型。對于整數類型的數組,
預設值為float64;對于float類型的數組,
它與數組類型相同。
out :ndarray, 可選
要在其中放置結果的備用輸出數組。
它必須具有與預期輸出相同的形狀,
但如有必要,可以強制轉換類型。
ddof :int, 可選
“自由度增量”:計算中使用的除數為N-ddof,
其中N表示元素數。 預設情況下,ddof為零。
keepdims :bool, 可選
如果将其設定為True,
那麼被縮減的軸将在結果中保留尺寸為1的次元。
使用此選項,結果将針對輸入數組正确傳遞。
如果傳遞了預設值,
則keepdims不會傳遞給ndarray子類的var方法,
但是任何非預設值都會傳遞。
如果子類的方法未實作keepdims,則将引發任何異常。
傳回值 :variance :ndarray, see dtype parameter above
如果out = None,則傳回一個包含差異的新數組;
否則為false。否則,傳回對輸出數組的引用。
Notes
方差是與平均值的平方偏差的平均值,即var = mean(abs(x-x.mean())** 2)。
平均值通常按x.sum()/N計算,其中N = len(x)。但是,如果指定了ddof,則使用除數N-ddof。在标準統計實踐中,ddof = 1提供了一個假設的無限總體方差的無偏估計量。ddof = 0為正态分布變量提供方差的最大似然估計。
請注意,對于複數,絕對值是在平方之前擷取的,是以結果始終是實數且非負數。
對于浮點輸入,使用與輸入相同的精度來計算方差。根據輸入資料,這可能導緻結果不準确,尤其是對于float32(請參見下面的示例)。使用dtype關鍵字指定精度更高的累加器可以緩解此問題。
例子>>> a = np.array([[1, 2], [3, 4]])
>>> np.var(a)
1.25
>>> np.var(a, axis=0)
array([1., 1.])
>>> np.var(a, axis=1)
array([0.25, 0.25])
以單精度形式,var()可能不準确:>>> a = np.zeros((2, 512*512), dtype=np.float32)
>>> a[0, :] = 1.0
>>> a[1, :] = 0.1
>>> np.var(a)
0.20250003
計算float64中的方差更準确:>>> np.var(a, dtype=np.float64)
0.20249999932944759 # may vary
>>> ((1-0.55)**2 + (0.1-0.55)**2)/2
0.2025