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


Python numpy var用法及代碼示例


本文簡要介紹 python 語言中 numpy.var 的用法。

用法:

numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>, *, where=<no value>)

計算沿指定軸的方差。

返回數組元素的方差,即分布分布的度量。默認情況下為展平數組計算方差,否則在指定軸上計算。

參數

a array_like

包含需要方差的數字的數組。如果 a 不是數組,則嘗試轉換。

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

計算方差的一個或多個軸。默認是計算展平數組的方差。

如果這是一個整數元組,則在多個軸上執行方差,而不是像以前那樣在單個軸或所有軸上執行。

dtype 數據類型,可選

用於計算方差的類型。對於整數類型的數組,默認值為 float64 ;對於浮點類型的數組,它與數組類型相同。

out ndarray,可選

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

ddof 整數,可選

“自由度三角洲”:計算中使用的除數是N - ddof,其中N表示元素的數量。默認ddof為零。

keepdims 布爾型,可選

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

如果傳遞了默認值,那麽保持昏暗不會被傳遞到var子類的方法numpy.ndarray,但是任何非默認值都是。如果sub-class' 方法沒有實現保持昏暗將引發任何異常。

where 類似於 bool 的數組,可選

要包含在差異中的元素。有關詳細信息,請參閱 reduce

返回

variance ndarray,見上麵的 dtype 參數

如果 out=None ,則返回一個包含方差的新數組;否則,返回對輸出數組的引用。

注意

方差是與平均值的平方偏差的平均值,即 var = mean(x) ,其中 x = abs(a - a.mean())**2

平均值通常計算為x.sum() / N,其中N = len(x).然而,如果,ddof被指定,除數N - ddof改為使用。在標準統計實踐中,ddof=1提供了假設無限總體方差的無偏估計量。ddof=0提供正態分布變量的方差的最大似然估計。

請注意,對於複數,在平方之前取絕對值,因此結果始終為實數且非負數。

對於浮點輸入,使用與輸入相同的精度計算方差。根據輸入數據,這可能會導致結果不準確,尤其是對於 float32 (參見下麵的示例)。使用 dtype 關鍵字指定 higher-accuracy 累加器可以緩解此問題。

例子

>>> 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

指定 where 參數:

>>> a = np.array([[14, 8, 11, 10], [7, 9, 10, 11], [10, 15, 5, 10]])
>>> np.var(a)
6.833333333333333 # may vary
>>> np.var(a, where=[[True], [True], [False]])
4.0

相關用法


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