Pythonには標準でstatisticsという数理統計関数ライブラリが用意されています。
それを使うと、平均や標準偏差、中央値などさまざまな統計量が簡単に計算できます。
標準偏差は母標準偏差(pstdev)と標本標準偏差(stdev)が両方用意されています。 母標準偏差はデータの個数で割るもの、標本標準偏差はデータの個数から1減じたもので割る方です。 詳細は略しますが、標本から母集団の統計量を推測するときには標本標準偏差を使うべきとされています。
「Python/正規分布に従う乱数を生成する」で紹介した「random.gauss」で、平均10、標準偏差2.5の正規分布に従うランダムなデータを1000個作成し、その平均と標準偏差を求めると以下のようになります。
import statistics import random m = 10 v = 2.5 n = 1000 data = [] for j in range(n): data.append(random.gauss(m,v)) print("平均\t\t",statistics.mean(data)) print("母標準偏差\t",statistics.pstdev(data)) print("標本標準偏差\t",statistics.stdev(data))
結果:
平均 9.961114639666533 母標準偏差 2.4024438913751966 標本標準偏差 2.403646014988765
乱数を使っているので値は実行するたびに変化しますが、平均10、標準偏差2.5に近い値が出ています。
また、母分散(pvariance)や標本標準分散(variance)も全く同様に求められます。
上の例のように、1000個ぐらいのデータなら、スペックの低いパソコンでもほぼ一瞬で答えが出ます。