web-dev-qa-db-ja.com

Numpyを使用して行列式を取得できますか?

Numpyのマニュアルで、行列式を計算できる関数det(M)があることを読みました。ただし、Numpyでdet()メソッドが見つかりません。

ところで、私はPython 2.5を使用します。Numpyとの互換性の問題はないはずです。

38
george

numpy.linalg.det 配列の行列式を計算するには:

In [1]: import numpy

In [2]: M = [[1, 2], [3, 4]]

In [3]: print numpy.linalg.det(M)
Out[3]: -2.0000000000000004
65
xyz

大きな配列の場合、numpy.linalg.detを使用するときにアンダーフロー/オーバーフローが発生するか、infまたは-infが返されます。

これらの多くの場合、numpy.linalg.slogdetドキュメントを参照 )を使用できます。

(sign, logdet)

ここでsignは行列式の符号で、logdetは行列式の対数です。これにより、行列式detを計算できます。

det = np.exp(logdet)
24