Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Trả về hạng ma trận dùng SVD trong Python

numpy.linalg.matrix_rank() tính hạng ma trận bằng SVD. Hạng = số giá trị kỳ dị > tol. Mặc định tol = S.max() * max(M, N) * eps. Tham số hermitian=True tối ưu cho ma trận Hermitian.

Tham số

  • A (array_like): Ma trận hoặc stack ma trận.
  • tol (float, tùy chọn): Ngưỡng giá trị kỳ dị coi như 0.
  • hermitian (bool, tùy chọn): Giả định Hermitian.

Các bước thực hiện

Nhập thư viện, tạo ma trận đơn vị 5x5:

import numpy as np
from numpy.linalg import matrix_rank

arr = np.eye(5)
print("Mảng của chúng ta...\n", arr)
print("\nSố chiều...\n", arr.ndim)
print("\nKiểu dữ liệu...\n", arr.dtype)
print("\nHình dạng...\n", arr.shape)

# Tính hạng
print("\nKết quả (hạng)...\n", matrix_rank(arr))

Ví dụ hoàn chỉnh

import numpy as np
from numpy.linalg import matrix_rank

arr = np.eye(5)
print("Mảng của chúng ta...\n", arr)
print("\nSố chiều...\n", arr.ndim)
print("\nKiểu dữ liệu...\n", arr.dtype)
print("\nHình dạng...\n", arr.shape)
print("\nKết quả (hạng)...\n", matrix_rank(arr))

Kết quả đầu ra

Mảng của chúng ta...
 [[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
Hình dạng...
 (5, 5)
Kết quả (hạng)...
 5