Pythonで行列式を扱う方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonで行列式を扱う方法について現役エンジニアが解説しています。Pythonの科学計算用の基本パッケージであるNumPyを使います。NumPyのメソッドであるndarray関数やmatrix関数を使って行列式を処理してみます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonで行列式を扱う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで行列式を扱う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

NumPyとは

NumPyは、Pythonの科学計算用の基本パッケージです。

このパッケージには、さまざまな派生オブジェクト(マスクされた配列や行列など)を含む多次元配列オブジェクト、および数学、論理、形状操作、並べ替え、選択、I / Oを含む配列の高速操作のためのルーチン、離散フーリエ変換、基本線形代数、基本統計操作、ランダムシミュレーションなどを提供するPythonライブラリが含まれています。

NumPyのarrayは、多数のデータに対する操作を容易にします。一般的に、Pythonの組み込みシーケンスを使用した場合よりも効率的かつ少ないコードで実行できます。科学的および数学的なPythonベースのパッケージが増え続けており、NumPy配列が使用されています。

これらは通常Pythonシーケンス入力をサポートしますが、処理前にそのような入力をNumPy配列に変換し、多くの場合NumPy配列を出力します。

昨今の科学的/数学的なPythonベースのソフトウェアの多くを効率的に使用するには、Pythonの組み込みシーケンスタイプの使用方法を知るだけでは不十分です。NumPy配列の使用方法も知る必要があります。
 

ndarray関数の使い方

NumPyパッケージの中核にあるのは、ndarrayオブジェクトです。これにより、同種のデータ型のn次元配列がカプセル化され、パフォーマンスのために多くの操作がコンパイルされたコードで実行されます。

NumPy配列と標準のPythonシーケンスにはいくつかの重要な違いがあります。

NumPy配列は、Pythonリスト(動的に拡大できる)とは異なり、作成時のサイズが固定されています。 ndarrayのサイズを変更すると、新しい配列が作成され、元の配列が削除されます。

NumPy配列の要素はすべて同じデータ型である必要があるため、メモリ内で同じサイズになります。
 

[PR] Pythonで挫折しない学習方法を動画で公開中

matrix関数の使い方

配列のようなオブジェクト、またはデータの文字列から行列を返します。

matrixは、操作を通じてその2次元の性質を保持する特殊な2次元配列です。 *(行列の乗算)や**(行列のべき乗)などの特定の特別な演算子があります。
 

matrix関数の注意点

線形代数においても、matrixの使用は推奨されなくなりました。代わりに、通常の配列を使用することをおすすめします。

このクラスは将来削除される可能性があります。
 

実際に書いてみよう

array

サンプルコード

import numpy as np
np.array([[1,2],[3,4]])

 

結果

array([[1, 2],
      [3, 4]])

 

解説

arrayオブジェクトはNumPyに含まれるので必ずimportしてから使うようにしてください。

この行を忘れるとNameErrorとなります。
 

matrix

コード

import numpy as np
np.matrix([[1, 2], [3, 4]])

 

結果

matrix([[1, 2],
        [3, 4]])

 

解説

arrayと同様です。arrayの代わりにmatrixになっていることも忘れないでください。
 

まとめ

配列を用いた計算はソースコードを簡略的に書く際に非常に役に立ちます。是非とも活用していってください。
 

監修してくれたメンター

メンターkatoさん

学生時代に数値解析のためにプログラミングを始める。現在は企業にて専門職として働くかたわら、プログラムを書き業務効率化を図っている。

現在のメイン言語はPython, JavaScript。また、企業内の希望者にPythonのメンターとして基礎から教えている。テックアカデミーではJavaScriptを教える。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。