numpy.linalg.matrix_rank() tính rank ma trận dùng SVD (Singular Value Decomposition). Rank = số giá trị kỳ dị lớn hơn ngưỡng tol.
Ví dụ: ma trận đơn vị 5x5
import numpy as np
from numpy.linalg import matrix_rank
arr = np.eye(5) # Ma trận đơn vị 5x5
print("Ma trận:", arr)
print("Số chiều:", arr.ndim)
print("Kiểu dữ liệu:", arr.dtype)
print("Kích thước:", arr.shape)
# Rank ma trận đầy đủ
rank = matrix_rank(arr)
print("Rank:", rank)
Kết quả
Ma trận: [[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
Số chiều: 2
Kiểu dữ liệu: float64
Kích thước: (5, 5)
Rank: 5
Ma trận đơn vị n×n luôn có rank = n (đầy đủ rank). Tất cả 5 giá trị kỳ dị = 1 > tol.