Python計算標準差之numpy.std和torch.std的區(qū)別
輸入:
[1.0000, -1.0000, 3.0000]
課本中的標準差計算公式:

按照上述公式計算:

Numpy中的std計算:
import numpy as np tm = np.array([1.0000, -1.0000, 3.0000]) ddd = np.std(tm) print(ddd)
1.632993161855452
可以看出Numpy中的計算結(jié)果與課本中的公式計算出來的結(jié)果是一致的。
Torch中的std計算:
tm = torch.tensor([1.0000, -1.0000, 3.0000]) ddd = torch.std(tm) print(ddd)
tensor(2.)
計算出來的結(jié)果是2,與Numpy中的計算結(jié)果是不相同的。
查看torch.std的參數(shù):

torch.std默認設(shè)置了unbiased=True。此時計算標準差的公式則使用貝塞爾校正 的方法:

可以看出貝塞爾校正的標準差最后除以n - 1。

可以看出確實計算出來的結(jié)果是2.
至于為何使用n-1,這里不做過多介紹,建議參考:貝塞爾校正。
附:貝塞爾校正
貝塞爾校正,指的是樣本方差
前面的系數(shù)1/n-1

這就是這個系數(shù)的原理
注:設(shè)置torch.std中的unbiased=False,則與Numpy中的std的結(jié)果相同的。
總結(jié):
Numpy中的std計算與課本中的計算方式相同,都是除的是樣本數(shù)量n。
Torch中的std計算默認使用的是unbiased=True即貝塞爾校正,除的是樣本數(shù)量n-1。
相關(guān)文章
Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析
這篇文章主要介紹了Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
Python必備技巧之Pandas數(shù)據(jù)合并函數(shù)
Pandas中一共有五個數(shù)據(jù)合并函數(shù),分別為:concat、append、merge、join、combine,本文詳細講解這五個函數(shù)的使用方法,需要的可以參考一下2022-03-03
python設(shè)置Pyplot的動態(tài)rc參數(shù)、繪圖的填充
本文主要介紹了python設(shè)置Pyplot的動態(tài)rc參數(shù)、繪圖的填充,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06

