国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python計算庫numpy進行方差/標準方差/樣本標準方差/協方差的計算

2020-01-04 13:40:38
字體:
來源:轉載
供稿:網友

使用numpy可以做很多事情,在這篇文章中簡單介紹一下如何使用numpy進行方差/標準方差/樣本標準方差/協方差的計算。

variance: 方差

方差(Variance)是概率論中最基礎的概念之一,它是由統計學天才羅納德·費雪1918年最早所提出。用于衡量數據離散程度,因為它能體現變量與其數學期望(均值)之間的偏離程度。具有相同均值的數據,而標準差可能不同,而通過標準差的大小則能更好地反映出數據的偏離度。

計算:一組數據1,2,3,4,其方差應該是多少?

計算如下:

均值=(1+2+3+4)/4=2.5 
方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/4 = (2.25+0.25+0.25+2.25)/4 = 1.25

python的numpy庫中使用var函數即可求解,代碼&執行如下:

liumiaocn:tmp liumiao$ cat np-5.py #!/usr/local/bin/pythonimport numpy as nparr = np.array([1,2,3,4])print("variance of [1,2,3,4]:", np.var(arr))liumiaocn:tmp liumiao$ python np-5.py ('variance of [1,2,3,4]:', 1.25)liumiaocn:tmp liumiao$ 

standard deviation: 標準偏差

標準偏差=方差的開放,所以:

計算: 一組數據1,2,3,4,其標準偏差應該是多少?

計算就很簡單了,對其求出的方差1.25進行開方運算即可得到大約1.118

可以使用numpy庫中的std函數就可以非常簡單的求解,代碼&執行如下:

liumiaocn:tmp liumiao$ cat np-6.py #!/usr/local/bin/pythonimport numpy as nparr = np.array([1,2,3,4])print("variance of [1,2,3,4]:", np.var(arr))print("sqrt of variance [1,2,3,4]:",np.sqrt(np.var(arr)))print("standard deviation: np.std()", np.std(arr))liumiaocn:tmp liumiao$ python np-6.py ('variance of [1,2,3,4]:', 1.25)('sqrt of variance [1,2,3,4]:', 1.118033988749895)('standard deviation: np.std()', 1.118033988749895)liumiaocn:tmp liumiao$ 

sample standard deviation: 樣本標準偏差

標準偏差是對總體樣本進行求解,如果有取樣,則需要使用樣本標準偏差,它也是一個求開方的運算,但是對象不是方差,方差使用是各個數據與數學均值的差的求和的均值,簡單來說除的對象是N,樣本偏差則是N-1。

計算: 一組數據1,2,3,4,其樣本標準偏差應該是多少? 
計算如下: 
均值=(1+2+3+4)/4=2.5 
樣本標準偏差的方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/3 = (2.25+0.25+0.25+2.25)/4 = 5/3 
所以對5/3開方運算所得到的就是樣本標準偏差為:1.29

同樣適用numpy的std函數就可以做到這點,只需要將其一個Optional的參數設定為1即可,代碼&執行如下:

liumiaocn:tmp liumiao$ cat np-7.py #!/usr/local/bin/pythonimport numpy as nparr = np.array([1,2,3,4])print("sample standard deviation: np.std()", np.std(arr, ddof=1))liumiaocn:tmp liumiao$ python np-7.py ('sample standard deviation: np.std()', 1.2909944487358056)liumiaocn:tmp liumiao$

注意:matlab中的std實際指的是樣本標準偏差,這點需要注意,如果你的代碼從matlab上copy過來,請注意其實際的意義是標準偏差還是樣本標準偏差

Covariance:協方差

協方差和方差較為接近,區別在于除數為N-1。

計算: 一組數據1,2,3,4,其協方差應該是多少?

計算如下:

均值=(1+2+3+4)/4=2.5 
方差=((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 +(4-2.5)^2)/(4-1) = (2.25+0.25+0.25+2.25)/3 = 1.66667

使用numpy的cov函數即可簡單求出,代碼和執行結果如下:

liumiaocn:tmp liumiao$ cat np-8.py #!/usr/local/bin/pythonimport numpy as nparr = np.array([1,2,3,4])print("Covariance: np.cov()", np.cov(arr))liumiaocn:tmp liumiao$ python np-8.py ('Covariance: np.cov()', array(1.66666667))liumiaocn:tmp liumiao$

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄯善县| 禹州市| 宜兰县| 阜城县| 中西区| 西昌市| 会同县| 永寿县| 佛坪县| 九龙城区| 临潭县| 广州市| 柳林县| 南郑县| 永年县| 龙海市| 梨树县| 海门市| 洪雅县| 临潭县| 志丹县| 龙里县| 乌鲁木齐市| 开封县| 始兴县| 定襄县| 乌兰县| 靖边县| 博兴县| 临夏县| 舒城县| 波密县| 新和县| 平潭县| 东丽区| 丹江口市| 保靖县| 固安县| 广汉市| 冷水江市| 闵行区|