Могу ли я получить матричный определитель, используя Numpy? - PullRequest
37 голосов
/ 20 января 2009

Я прочитал в руководстве Numpy, что есть функция det(M), которая может вычислить определитель. Тем не менее, я не могу найти метод det() в Numpy.

Кстати, я использую Python 2.5. Не должно быть проблем с совместимостью с Numpy.

Ответы [ 2 ]

64 голосов
/ 20 января 2009

Вы можете использовать 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
23 голосов
/ 11 октября 2013

Для больших массивов при использовании numpy.linalg.det может произойти переполнение / переполнение, или вы можете получить inf или -inf в качестве ответа.

Во многих из этих случаев вы можете использовать numpy.linalg.slogdet ( см. Документацию ), которая возвращает:

(sign, logdet)

, где sign - знак, а logdet - логарифм определителя, так что вы можете вычислить определитель det, выполнив:

det = np.exp(logdet)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...