libro
www.tuyano.com
初心者のためのJupyter入門

numpyによるベクトル・行列の基本 (4/5)

作成:2018-02-03 11:37
更新:2018-02-03 11:37

■行列の作成

続いて、行列です。基本的に、行列の扱いもベクトルとそれほど違いはありません。ただし、numpyでは、ndarrayとは別に、matrixという行列のクラスが用意されているので注意が必要です。まずは行列の作成についてまとめましょう。


●行列の作成
変数 = numpy.array( 2次元リスト )
変数 = numpy.matrix( 2次元リスト )
行列の作成は、arrayまたはmatrixを使って行います。引数に2次元リストを用意すれば、それを元に行列のインスタンスが作成されます。例えば、こんな具合です。
matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
 ↓
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]

●ndarrayとmatrixは違う!
2つのメソッドで行列が作れるといいましたが、実はこれらで作成されるインスタンスは内容が違います。それぞれndarrayインスタンス、matrixインスタンスが作成されるのです。

ndarraymatrixは、どちらも行列を扱うのに利用されますが、部分的に動作が違うところがあります。ndarrayは、あくまで「配列(リスト)」の強化版であり、行列的に扱える、ということです。matrixが行列のためのクラスと考えましょう。

両者の違いが端的に現れるのは、乗算(*演算子)です。ndarrayの場合、両者の乗算は単に各項目の値どうしが乗算されるだけです。matrixの場合、両者の乗算は行列の積になります。


●単位行列(正方行列)
変数 = numpy.identity( サイズ )
単位行列は、numpyを使うと簡単に作成できます。正方行列(行数と列数が同じもの)は、identityメソッドを使います。引数には、行列のサイズを示す値を指定します。例えば、こんな具合です。
numpy.identity(3)
 ↓
[[ 1.  0.  0.]
[ 0.  1.  0.]
[ 0.  0.  1.]]

●単位行列(非正方)
変数 = numpy.eye( 行数 , 列数 , オフセット )
正方行列ではない場合の単位行列は、eyeというメソッドを利用します。これは、行数と列数をそれぞれ引数に指定して作成します。

デフォルトでは、行列の左上(一番最初の値)が1となるように作成されますが、第3引数にオフセット値を指定することで位置をずらすことができます。例えばこんな具合です。
numpy.eye(3, 5, 2)
 ↓
[[ 0.  0.  1.  0.  0.]
[ 0.  0.  0.  1.  0.]
[ 0.  0.  0.  0.  1.]]

●対角行列
変数 = numpy.diag(《ベクトル》)
diagメソッドは、ベクトルの各値を行列の対角項に設定し対角行列を作成します。例えば以下のような具合です。
numpy.diag([1,2,3,4])
 ↓
[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]


※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのJupyter入門」に戻る