ここではNumPyにおけるeyeを用いた単位行列を作成する方法について解説しています。
この記事の対象
eye関数
基本的な型
numpy.eye(N, M=None, k=0, dtype=<class float>)
基本的な単位行列の生成する方法は、Nに出力の行数。Mに出力の列数(デフォルトではNと同じ値)。kに対角成分の位置を指定するオフセット、正の値で上方向、負の値で下方向にずれる。dtypeにデータ型を指定することで可能です。
使用例
import numpy as np
np_int = np.eye(5, dtype=int)
print(np_int)
引数に5(5次の単位行列)、intを指定すると結果は以下のようになります。
[[1 0 0 0 0]
[0 1 0 0 0]
[0 0 1 0 0]
[0 0 0 1 0]
[0 0 0 0 1]]
identityを用いた単位行列生成
単位行列を生成する方法には「identity」を用いる方法もあります。正方行列を生成する場合に便利です。
import numpy as np
np_int = np.identity(5)
print(np_int)
使用方法としてはeyeと一緒で引数に数値とデータ型を指定するだけです。ここではデータ型はデフォルトのままなのでfloat型として出力されています。以下が、結果になります。
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
diag関数
diag関数は、与えられた対角成分から行列を生成する関数です。主対角以外の成分はすべて0になります。
import numpy as np
diagonal_matrix = np.diag([1, 2, 3])
print(diagonal_matrix)
対角成分が1, 2, 3の行列を生成しています。以下が、結果になります。
[[1 0 0]
[0 2 0]
[0 0 3]]