Pythonで正規分布の乱数を生成させて統計情報を算出
NumPyで正規分布の乱数を生成
まずはNumPyで正規分布の乱数を発生させます。
例えば、平均が100、標準偏差が20の乱数を500個生成するには、下記のように書きます。
import numpy as np npData = np.random.normal(100, 20, 500)
平均を算出
mean()で平均を算出できます。
print("平均=", np.mean(npData))
分散を算出
var()で分散を算出できます。
print("分散=", np.var(npData))
最大値を算出
max()で最大値を算出できます。
print("最大値=", np.max(npData))
中央値を算出
median()で中央値を算出できます。
print("中央値=", np.median(npData))
最小値を算出
min()で最小値を算出できます。
print("最小値=", np.min(npData))
標準偏差を算出
std()で標準偏差を算出できます。
print("標準偏差=", np.std(npData))
スポンサーリンク
歪度を算出
scipy.statsをimportして、skew()で歪度を算出できます。
import scipy.stats as stats print("歪度=", stats.skew(npData))
尖度を算出
kurtosis()で尖度を算出できます。
print("尖度=", stats.kurtosis(npData))
ヒストグラムを出力
matplotlib.pyplotをimportして、hist()でヒストグラムを出力できます。
ビンの数を40に設定しています。
import matplotlib.pyplot as plt plt.hist(npData, bins=40) plt.show()
サンプルコード
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import numpy as np import matplotlib.pyplot as plt import scipy.stats as stats npData = np.random.normal(100, 20, 500) print("平均=", np.mean(npData)) print("分散=", np.var(npData)) print("最大値=", np.max(npData)) print("中央値=", np.median(npData)) print("最小値=", np.min(npData)) print("標準偏差=", np.std(npData)) print("歪度=", stats.skew(npData)) print("尖度=", stats.kurtosis(npData)) plt.hist(npData, bins=40) plt.show()
下記が実行結果になります。
$ ./sample.py 平均= 99.7832373982 分散= 461.719222021 最大値= 169.492533716 中央値= 99.8611189891 最小値= 29.2712085181 標準偏差= 21.4876527806 歪度= 0.08149277834971708 尖度= -0.1863572771136317
