O módulo scipy.linalg fornece operações de álgebra linear padrão, contando com uma implementação eficiente (BLAS, LAPACK).

scipy.linalg.det() calcula o determinante de uma matriz quadrada:

[pastacode lang=”python” message=”” highlight=”” provider=”manual”]

from scipy import linalg
arr = np.array([[1, 2],
                [3, 4]])
linalg.det(arr)

arr = np.array([[3, 2],
                [6, 4]])
linalg.det(arr)
linalg.det(np.ones((3, 4))) #erro

[/pastacode]

A função scipy.linalg.inv() calcula a inversa de uma matriz quadrada:

[pastacode lang=”python” message=”” highlight=”” provider=”manual”]

arr = np.array([[1, 2],
                [3, 4]])
iarr = linalg.inv(arr)
iarr
np.allclose(np.dot(arr, iarr), np.eye(2))

[/pastacode]

Se a matriz for singular (determinante igual a zero), a inversa vai resultar em um erro LinAlgError:

[pastacode lang=”python” message=”” highlight=”” provider=”manual”]

arr = np.array([[3, 2],
                [6, 4]])
linalg.inv(arr)

[/pastacode]

Funções mais avançadas também estão disponíveis, como por exemplo, a decomposição por valores singulares (scipy.linalg.