【毎日Python】Pythonで単位行列を作成する方法|numpy.identity,eye

identity
こつこつPython

Pythonで単位行列を作成する方法です。
使用するのは、Pythonのnumpyライブラリのidentity関数とeye関数です。
単位行列とは、対角線上の要素の値が全て1で、それ以外は全て0で構成された行列のことです。

import numpy as np

まず、itentity関数で単位行列を作成してみましょう。
引数に行列の数を指定して実行します。
列数5、行数5の、単位行列を作成することができました。
このように、1つ目の配列の第1要素から、右肩下がりに対角線が生成されます。

np.identity(5)

実行結果:

array([[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関数では、列数と行数をそれぞれ別に指定しようとすると、エラーが表示されます。

np.identity(3, 5)

実行結果:

TypeError: Cannot interpret '5' as a data type

したがって、列数と行数と別々に指定するには、eye関数を使用します。
eye関数の第一引数に行数、引数Mに列数を指定します。
また、引数kで対角線が始まる位置を指定することもできます。
2を指定すると、1つ目の配列の、3番目の要素から対角線が始まります。
実行してみましょう。
指定した通りに、単位行列を作成することができました。

np.eye(3, M=5, k=2) 

実行結果:

array([[0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

また、identity関数のように、第一引数のみ指定すると、指定した整数で単位行列を作成することもできます。

np.eye(5)

実行結果:

array([[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.]])
未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト