天天看點

怎麼用python求var_Python numpy.var函數方法的使用

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