Linear Algebra Functions#

NumPy has a submodule linalg for functions related to linear algebra, but the base numpy module also contains some linear algebra functions. Linear algebra in NumPy’s documentation provides a comprehensive list of functions. Here we only provide few examples.

import numpy as np

For mathematical definitions see Linear Algebra.

Vector Products#

For inner products use np.inner. For outer products use np.cross.

a = np.array([1, 2, 3])
b = np.array([1, 0, 2])

print(np.inner(a, b))
print(np.cross(a, b))
7
[ 4  1 -2]

Matrix Transpose#

The np.transpose function yields the transpose of a matrix. Alternatively, a NumPy array’s member variable T holds the transpose, too. The transpose is a view (not a copy) of the original matrix.

A = np.array([[1, 2, 3],
              [4, 5, 6]])

print(np.transpose(A))
print(A.T)
[[1 4]
 [2 5]
 [3 6]]
[[1 4]
 [2 5]
 [3 6]]

Matrix Multiplication#

NumPy introduces the @ operator for matrix multiplication. It’s equivalent to calling np.matmul.

A = np.array([[1, 2, 3],
              [4, 5, 6]])
B = np.array([[1, 0],
              [2, 1],
              [1, 1]])

print(A @ B)
print(np.matmul(A, B))
[[ 8  5]
 [20 11]]
[[ 8  5]
 [20 11]]

Determinants and Inverses#

Determinants and inverses of square matrices can be computed with np.linalg.det and np.linalg.inv, respectively.

A = np.array([[2, 0],
              [1, 1]])

print(np.linalg.det(A))
print(np.linalg.inv(A))
2.0
[[ 0.5  0. ]
 [-0.5  1. ]]

Solving Systems of Linear Equations#

The np.solve function solves a system of linear equations.

A = np.array([[2, 0],
              [1, 1]])
b = np.array([2, 3])
              
print(np.linalg.solve(A, b))
[1. 2.]