Numpy のマニュアルでdet(M)
、行列式を計算できる関数があると読みました。det()
ただし、 Numpyでメソッドが見つかりません。
ちなみに私はPython2.5を使っています。Numpy との互換性の問題はないはずです。
大規模な配列の場合、 を使用するとアンダーフロー/オーバーフローが発生するか、答えとしてまたはnumpy.linalg.det
が得られる場合があります。inf
-inf
これらのケースの多くで、以下を使用できますnumpy.linalg.slogdet
(ドキュメントを参照):
sign, logdet = np.linalg.slogdet(M)
ここでsign
は行列式の符号とlogdet
対数です。行列式は、次の方法で簡単に計算できます。
det = np.exp(logdet)
スパース行列 (2 次元配列) については、LU 分解に基づく別のアプローチを強くお勧めします。