2 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個贊
有時候人容易犯知其一不知其二的錯誤,np.std也是支持計(jì)算無偏樣本標(biāo)準(zhǔn)差的(話說無偏樣本標(biāo)準(zhǔn)差這么常用,NumPy怎么會不支持呢),見如下代碼:
>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.std(a, ddof = 1)
3.0276503540974917
>>> np.sqrt(((a - np.mean(a)) ** 2).sum() / (a.size - 1))
3.0276503540974917
>>> np.sqrt(( a.var() * a.size) / (a.size - 1))
3.0276503540974917

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import numpy as np
#可以直接用std函數(shù) a = np.arange(10) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) np.std(a) #2.8722813232690143
#或者按標(biāo)準(zhǔn)差公式寫 a = np.arange(10) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) mid = 0 for i in mid: mid = mid + (i - np.mean(a)) ** 2 np.sqrt(mid/a.size) #2.8722813232690143 |
添加回答
舉報(bào)