Matrix types
Square Matrix
A matrix where the number of rows(m) equals to the number of columns(n).
Main diagonal: The vector of values along the diagonal of the matrix from the top left to the bottom right.
Symmetric Matrix
A type of square matrix where the top-right triangle is the same as the bottom-left triangle. Note: The axis of symmetry is always the main diagonal.
Triangular Matrix
A type of square matrix that has values in the upper-right or lower-left triangle and filled with zeros in the rest.
from numpy import array
from numpy import tril
from numpy import triu
M = array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
upper = triu(M)
lower = tril(M)
print(upper)
print(lower)
[[1 2 3]
[0 2 3]
[0 0 3]]
[[1 0 0]
[1 2 0]
[1 2 3]]
Diagonal Matrix
A matrix where values outside the main diagonal have zero value; often represented as D. Note: A diagonal matrix does not have to be square.
from numpy import array
from numpy import diag
M = array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
# extract diagonal vector
d = diag(M)
print(d)
# create diagonal matrix from diagonal vector
D = diag(d)
print(D)
[1 2 3]
[[1 0 0]
[0 2 0]
[0 0 3]]
Identity Matrix
A square matrix that does not change a vector when multiplied; often represented as 'I' or 'In'.
from numpy import identity
I = identity(3)
print(I)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Orthogonal Matrix
Recap: Two vectors are orthogonal when their dot product equals zero, called orthonormal.
Orthogonal matrix is a square matrix whose columns and rows are orthonormal unit vectors; i.e perpendicular and also have a length/magnitude of 1. It is often denoted as 'Q'.
from numpy import array
from numpy import dot
from numpy import identity
from numpy.linalg import inv
Q = array([[1, 0], [0, -1]])
transpose = Q.T
inverse = inv(Q)
I = identity(2)
# inverse equivalence
print(transpose)
print(inverse)
# identity equivalence
dotproduct = dot(Q,transpose)
print(dotproduct)
print(I)
[[ 1 0]
[ 0 -1]]
[[ 1. 0.]
[-0. -1.]]
[[1 0]
[0 1]]
[[1. 0.]
[0. 1.]]
Link: - Introduction to Matrix Types in Linear Algebra for Machine Learning
Last updated
Was this helpful?