O módulo scipy.linalg fornece operações de álgebra linear padrão, contando com uma implementação eficiente (BLAS, LAPACK).
O 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.