mathpython thesaurus

広告

Python(NumPy)のstdで標準偏差を計算する

標準偏差はnumpyのstd関数で計算します。データはnumpyのarrayで1次元配列にする必要があります。

1から5までの数の標準偏差をnumpyで求めてみましょう。

import numpy as np

data = np.array([1, 2, 3, 4, 5])
std = np.std(data)

print(std)
# 1.4142135623730951

ddof

stdのオプションにddofがあります。デフォルトは0で、指定しなければ0が入ります。これを1にすると異なる標準偏差が返ります。

import numpy as np

data = np.array([4, 5, 1, 9, 6])
std = np.std(data)
std_0 = np.std(data, ddof=0)
std_1 = np.std(data, ddof=1)

print(std)
# 2.6076809620810595

print(std_0)
# 2.6076809620810595

print(std_1)
# 2.9154759474226504

標準偏差は「平均と要素の差」の二乗を合計し、それを「標準偏差の計算に用いる要素数」で割った値です。この「標準偏差の計算に用いる要素数」は要素数に一致させる必要はありません。要素数でも、要素数から1引いた数でもいい。

ddof=0は要素数、ddof=1は要素数から1引いた数を「標準偏差の計算に用いる要素数」にします。つまりstdの計算に使う要素数はN-ddofです。

要素が多くなればなるほど、ddof=0とddof=1の違いはなくなります。

広告

広告