2009-01-20 36 views
34

Ich habe im Handbuch von Numpy gelesen, dass es die Funktion det(M) gibt, die die Determinante berechnen kann. Allerdings kann ich die det() Methode in Numpy nicht finden.Kann ich die Matrix Determinante mit Numpy bekommen?

Übrigens, ich benutze Python 2.5. Es sollte keine Kompatibilitätsprobleme mit Numpy geben.

Antwort

57

können Sie numpy.linalg.det verwenden, um die Determinante einer Matrix zu berechnen:

In [1]: import numpy 

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

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

Für großen Arrays Unterlauf/Überlauf auftreten kann, wenn numpy.linalg.det verwenden, oder Sie können inf oder -inf als Antwort zu bekommen.

In vielen dieser Fälle können Sie verwenden numpy.linalg.slogdet (see documentation), die zurückgibt:

(sign, logdet) 

wo sign das Vorzeichen und logdet der Logarithmus der Determinante, so dass Sie die Determinante berechnen kann det tun:

det = np.exp(logdet) 
Verwandte Themen