1. 程式人生 > >Numpy中求標準差的函式std( )與Matlab中求標準差的函式std( )對同一組資料求標註差結果不一樣

Numpy中求標準差的函式std( )與Matlab中求標準差的函式std( )對同一組資料求標註差結果不一樣

一、問題描述 “Matlab求標註差函式std與Python Numpy中求標註差函式std對統一資料求標準差的結果不一樣”
Matlab示例:
>> a = [1,3,7,10,20];
>> std(a)
ans =
    7.4632
Python Numpy示例:
>>> a = [1,3,7,10,20]
>>> np.std(a)
6.675327707311455

兩者同樣取標準差,為什麼結果不一樣呢?


二、原因分析 https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html
引數ddof預設是0 在標準統計實際應用中,ddof=1提供了對無限總體樣本的方差的無偏估計 ddof=0表示對正態分佈變數的方差的最大似然估計
三、解決方法
>>> a = [1,3,7,10,20]
>>> np.std(a,ddof=1)
7.463243262818116
後跟Matlab的結果相同了