質問: Matplotlibでヒストグラムを描画しています。 ``` plt.hist(np.random.randn(100000)*10+50,bins=60,range=(20,80)) ``` のrandn(100000)の部分がわかりません。 100000の乱数を発生させているのはわかるのですが なぜそれがヒストグラムに関係があるのでしょうか? ヒストグラムのどの部分にrandn(100000)は関わっているのでしょうか? ``` # coding: utf-8 from __future__ import absolute_import from __future__ import division from __future__ import print_function import os import numpy as np import numpy.random as random import matplotlib.pyplot as plt plt.hist(np.random.randn(100000)*10+50,bins=60,range=(20,80)) plt.show() ``` というコードを書きました。
回答: np.random.randn() は標準正規分布に従って乱数を発生するアルゴリズムです。 > > 今回は、平均を50、標準偏差を10 に変換しているので、これはいわゆる「偏差値」をシュミレーションしていることになります。 > > > つまりこの ``` np.random.randn(100000)*10+50 ``` の部分は、100000人分の「偏差値」を擬似的に乱数で発生しています。 で、 それを`plt.hist()` にてその分布 ーたとえば100000人中、偏差値50付近の人は何人いるのかといった値ー を集計して表示していることになります。 なお`plot.hist()` の引数は bins : 分布を60分割して集計する range : 偏差値 20から80の範囲で集計を行う ということを示しております。