numpy

機械学習のためのnumpyでの行列、reshape、単位行列、ランダム値、正規分布の作成方法についてまとめました

機械学習を実装するには、行列ベクトルを扱う必要があります。行列、ベクトルだけでなく平均や標準偏差を計算することも多々あります。

 

しかし、、わざわざそれらをプログラムするのは非常に面倒です!

そこで、pythonではnumpyというライブラリを用います。

numpyとは、pythonでの数値計算を簡易化するために開発されたライブラリです。

 

このページでは、numpyについて取り上げ、具体的な使い方を見ていきます。

numpyの簡単な作成方法、numpyからlistへの変換(np.array, np.arange, tolst)

以下に簡単なnumpyの作成方法を示します。

  • pythonのlistからnumpyの行列へ(np.array, np.arange)
  • numpyの行列からpythonのlistへ(numpy.ndarray.tolist)

0行列、1行列、単位行列(zeros, ones, eye)

numpyを用いると色んな行列を簡単に作ることができます。

ここでは代表的なものとして0行列、1行列、単位行列を上げさせて頂きます。

0行列とは、値が全て0の行列です。

これには、np.zerosを用います。

 

1行列は、値が全て1の行列です。

これには、np.onesを用います。

 

単位行列とは、行と列の等しい部分は1、それ以外は0の行列です。

これには、np.eyeを用います。

↓のような行列

[1, 0, 0]
[0, 1, 0]
[0, 0, 1]

分割して作成した配列の作成(linspace)

np.linspaceを用いるとある範囲でいくらかに分割して配列を作成することができます。

たとえば

np.linspace(0, 5, 4)とすると0 ~ 5までで4分割され以下のように出力されます

array([0. , 1.66666667, 3.33333333, 5. ])

 

行列の形の変換(reshape)

次に行列の形を変換する方法について記載します。
つまり、
(6, 1) の行列を (2, 3)の形にするなどです。

これをするには、reshape関数を使います。

 

実際に見て見ましょう

 

行列のランダム値、正規分布(rand, randn, randint)

次に行列のランダム値、正規分布の作成をしましょう。

これは、機械学習の際に値を初期化するのに必要になります。

 

ランダム値の作成には、

np.ramdom.rand(行数, 列数)を使います。これをすると0~1の範囲でのランダム値が指定した行数、列数の行列として作成されます。

 

正規分布に従ったランダム値の表示には、

np.random.randn(行数, 列数)とします。

すると、平均0, 分散1である標準正規分布の行列が作成されます。

 

最後に、整数のランダム値を生成したい場合ですが、

これには、np.random.randint(n, m, (行数, 列数))

するとn~m-1の間の整数が指定した行数と列数の行列として作成されます。

 

実際に例を見ましょぅ