NumPy
1 min read
Updated 4 Aug 2026
12. Linear Algebra
A = np.array([[1, 2], [3, 4]])
A = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
A @ A # matrix multiply
np.dot(A, b) # [17 39]
np.linalg.inv(A) # inverse
np.linalg.det(A) # -2.0
np.linalg.matrix_rank(A) # 2
np.trace(A) # 5 (sum of diagonal)
np.linalg.solve(A, b) # solve Ax = b -> [-4. 4.5]
vals, vecs = np.linalg.eig(A) # eigenvalues & eigenvectors
U, S, Vt = np.linalg.svd(A) # singular value decomposition
np.linalg.norm(b) # 7.81 (L2 norm)
| Function | Purpose |
|---|---|
@ / matmul / dot |
matrix multiplication |
inv |
matrix inverse |
det |
determinant |
matrix_rank |
rank |
trace |
sum of diagonal |
solve(A, b) |
solve linear system (faster & more stable than inv(A)@b) |
eig |
eigenvalues/vectors |
svd |
singular value decomposition |
norm |
vector/matrix norm |
🚀 Best Practice: To solve
Ax = b, usenp.linalg.solve(A, b)— nevernp.linalg.inv(A) @ b. Solving is faster and numerically more stable.
⭐ Interview Question: When is a matrix not invertible? When
det == 0(singular) — columns are linearly dependent, rank < n.
Real-world use case: SVD powers dimensionality reduction (PCA), recommender systems, and image compression.