NumPyで単位行列(identity matrix)を作成する2つの方法について解説します。
NumPyには、単位行列を作成する方法が2つ用意されています。
eye
関数(numpy.eye
) – N×Mの単位行列を作成するidentity
関数(numpy.identity
) – 正方行列の単位行列を作成する
目次
N×Mの単位行列を作成するeye関数
単位行列を作成する関数としてよく見かけるのがeye
関数です。以下のように書くことで単位行列を作成することができます。
# 3x3の単位行列を作成する
E = np.eye(3)
print(E)
この例では引数に3を指定することで、3×3の単位行列を作成していますが、引数をもう一つ指定することで、正方行列以外の単位行列を作ることもできます。
以下の例では引数に3と4を指定することで、3×4の単位行列を作成しています。
# 3x4の単位行列を作成する
E = np.eye(3, 4)
print(E)
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
正方行列の単位行列を作成するidentity関数
eye
関数に比べると知名度はありませんが、正方行列の単位行列を作成することができる、identity
関数も用意されています。
先ほどと同様に3×3の単位行列を作成する場合は、以下のように書きます。
# 3x3の単位行列を作成する
E = np.identity(3)
print(E)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
どのように使い分けるのか
結論からいうと、使い分ける必要はありません。これまでどおりeye
関数だけを使用していただいても、eye
関数とidentity
関数を使い分けても構いません。とりあえず、2つの方法があることだけは覚えておいてください。