numpy.random
numpyにはいろいろな種類の分布関数から配列をランダムに生成するモジュールが用意されている。このモジュールはnumpy.randomと呼ばれる。
マニュアルはこちら : Random sampling (numpy.random)
機械分析をする際に特定の分布から配列を作りテストデータとして利用したいケースはよくある。このrandomを利用すれば、難しいことなくあっという間にテストデータを作成できる。しかも利用できる分布は、一様分布、二項分布、標準分布、χ分布など多岐にわたる。
利用できるすべての分布について知りたい場合はこちら:Distributions
標準分布作成
今回はこのrandom samplingを使って、標準分布から配列を作り、グラフに表示してみる。
標準分布を作成するには、numpy.random.normal()を使う。
マニュアルはこちら : numpy.random.normal()
random.normal()で重要となる3つの引数が、loc, scale, sizeである。random.normal()により、平均loc、標準偏差scaleの標準分布からランダムにsize個の値が取得できる。
まずは平均=0、標準偏差=1、100個の値を生成する。
import numpy as np np.random.normal(loc=0.0, scale=1.0, size=100) # array([ 1.35715525e+00, 2.56426627e-01, -8.04137869e-01, 1.08353165e-01, 8.96922671e-01, -2.86928524e-01, -5.36646804e-01, 7.07572646e-01, -1.93291487e-01, 3.32907355e-02, 5.57873262e-01, 9.50702968e-01, -3.14223231e-01, -1.13656991e+00, 1.47692868e+00, -3.80307830e-01, 1.16530194e+00, -2.09250152e-04, 6.37283361e-01, -1.23025497e+00,
2行で標準分布に従うランダム値が100個取得できた。
グラフへの表示
グラフに表示するために先ほどのコードを少し修正する。生成した変数をxに代入しておく。また生成する値は1000個とする。
import numpy as np x = np.random.normal(loc=0.0, scale=1.0, size=1000)
ヒストグラムを表示するにはmatplotlib.histを使う。
histの重要な引数はxおよびbinである。
- x: 配列、表示するデータ
- bins: 整数、ヒストプログラムを分割する数
histを使うとxに指定した変数をヒストグラムに表示する。この際にヒストグラムの幅はbins個となる。
import matplotlib %matplotlib inline plt.hist(x, bins=50)