
上QQ阅读APP看书,第一时间看更新
Linear algebra with NumPy
Linear algebra is a branch of mathematics concerned with vector spaces and the mappings between those spaces. NumPy has a package called linalg that supports powerful linear algebra functions. We can use these functions to find eigenvalues and eigenvectors or to perform singular value decomposition:
>>> A = np.array([[1, 4, 6], [5, 2, 2], [-1, 6, 8]]) >>> w, v = np.linalg.eig(A) >>> w # eigenvalues array([-0.111 + 1.5756j, -0.111 – 1.5756j, 11.222+0.j]) >>> v # eigenvector array([[-0.0981 + 0.2726j, -0.0981 – 0.2726j, 0.5764+0.j], [0.7683+0.j, 0.7683-0.j, 0.4591+0.j], [-0.5656 – 0.0762j, -0.5656 + 0.00763j, 0.6759+0.j]])
The function is implemented using the geev Lapack routines that compute the eigenvalues and eigenvectors of general square matrices.
Another common problem is solving linear systems such as Ax = b
with A
as a matrix and x
and b
as vectors. The problem can be solved easily using the numpy.linalg.solve
function:
>>> A = np.array([[1, 4, 6], [5, 2, 2], [-1, 6, 8]]) >>> b = np.array([[1], [2], [3]]) >>> x = np.linalg.solve(A, b) >>> x array([[-1.77635e-16], [2.5], [-1.5]])
The following table will summarise some commonly used functions in the numpy.linalg
package:
