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

こつこつPython

この記事の執筆・監修

キノコード
キノコード

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

numpy.linalg.inv(行列)

逆行列を求めるには、numpy.linalg.inv(行列)を使います。

in

import numpy

arr = numpy.array([[1, 1, -1], [2, 3, 0], [0, 1, 3]])


print(arr.shape)

out

[[ 9. -4. 3.]
 [-6. 3. -2.]
 [ 2. -1. 1.]]

サンプルコードで解説

サンプルデータ作成

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

in

arr = numpy.array([[1, 1, -1], [2, 3, 0], [0, 1, 3]])

表示する

in

print(arr)

3×3の配列ができている。

out

[[ 1 1 -1]
 [ 2 3 0]
 [ 0 1 3]]

numpy.linalg.inv(行列)を使って表示させてみる。

in

print(numpy.linalg.inv(arr))

out

[[ 9. -4. 3.]
 [-6. 3. -2.]
 [ 2. -1. 1.]]

念のため、検算。

もとの行列と逆行列をを掛けると単位行列になる。

試してみる。

in

arr_inv=numpy.linalg.inv(arr)

print(numpy.dot(arr,arr_inv))

単位行列が表示された

out

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

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

キノクエスト