日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python計算標準差之numpy.std和torch.std的區別_python

作者:little?student ? 更新時間: 2022-10-16 編程語言

輸入:

[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中的計算結果與課本中的公式計算出來的結果是一致的。

Torch中的std計算:

tm = torch.tensor([1.0000, -1.0000, 3.0000])
ddd = torch.std(tm)
print(ddd)

tensor(2.)

計算出來的結果是2,與Numpy中的計算結果是不相同的。

查看torch.std的參數:

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

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

可以看出確實計算出來的結果是2.

至于為何使用n-1,這里不做過多介紹,建議參考:貝塞爾校正。

附:貝塞爾校正

貝塞爾校正,指的是樣本方差前面的系數1/n-1

這就是這個系數的原理

注:設置torch.std中的unbiased=False,則與Numpy中的std的結果相同的。

總結:

Numpy中的std計算與課本中的計算方式相同,都是除的是樣本數量n。

原文鏈接:https://blog.csdn.net/weixin_43490422/article/details/123948727

欄目分類
最近更新