【リファレンス】行列式の求め方【Python】

毎日Python/こつこつPython

この記事の執筆・監修

キノコード
キノコード

テクノロジーアンドデザインカンパニー合同会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

numpy.linalg.det(行列)

行列式を求めるにはlinalgのdet関数を使います。

in

import numpy

arr = numpy.array([[1, 2, 3], [8, 9, 4], [7, 6, 5]])
print(numpy.linalg.det(arr))

out

48

サンプルコードで解説

サンプルデータ作成

サンプルデータとして、行が3次元、列が3次元のarray(配列)を作成して、変数arrに代入。

in

import numpy

arr = numpy.array([[1, 2, 3] , [4, 5, 6] , [7, 8, 9]])

 

arrを表示してみる。

in

print(arr)

 

行が3次元、列が3次元の配列ができている。

out

[[ 1 2 3]
 [ 4 5 6]
 [ 7 8 9]]

 

さっそく、行列式を求めてみる。

in

print(numpy.linalg.det(arr))

行列式を求めることができた

in

-48

補足

・linalgとは、「linear algebra(線形代数)」のモジュール

・detは、「determinant(行列式)」を求める関数

・行列式は、行と列の次元数が同じ「正方行列」じゃなければ求めることができない。

行列式と機械学習

行列式は、主成分分析という機械学習をする時に使います。

少し遠回りになってしまいますが、

・行列式は、逆行列を求めるのに使い、

・逆行列は、固有値を求めるのに使い、

・固有値を主成分分析の時に使います。

 

数学の復習

工事中