numpy.linalg --- Các hàm đại số tuyến tính

Mô-đun con numpy.linalg cung cấp một tập hợp nhỏ các hàm đại số tuyến tính hoạt động trên các đối tượng numpy.ndarray. Các hàm hoạt động trên ma trận yêu cầu mảng hai chiều; truyền mảng có số chiều khác sẽ phát sinh ngoại lệ ValueError. Mô-đun con này không hỗ trợ các kiểu dữ liệu số phức.

Các hàm

numpy.linalg.cholesky(A: ndarray) ndarray

Tính phân tích Cholesky của một ma trận vuông xác định dương, đối xứng.

Tham số:

A -- một ma trận vuông hai chiều, xác định dương và đối xứng.

Trả về:

một numpy.ndarray tam giác dưới L sao cho A = L @ L.T.

Đưa ra:

ValueError -- nếu A không phải là ma trận vuông, không đối xứng, hoặc không xác định dương.

numpy.linalg.det(m: ndarray) float

Tính định thức của một ma trận vuông.

Tham số:

m -- một ma trận vuông hai chiều.

Trả về:

định thức của m dưới dạng float của Python. Giá trị trả về luôn là số thực, ngay cả khi đầu vào là mảng số nguyên.

Đưa ra:

ValueError -- nếu m không phải là ma trận vuông.

Phép tính được thực hiện bằng phương pháp khử Gauss với chọn trục chính từng phần.

numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]

Tính các giá trị riêng và vectơ riêng của một ma trận vuông thực đối xứng.

Tham số:

m -- một ma trận vuông hai chiều, thực và đối xứng.

Trả về:

một tuple 2 phần tử (eigenvalues, eigenvectors). eigenvalues là một mảng một chiều có độ dài N; eigenvectors là một mảng N-nhân-N mà các cột là các vectơ riêng tương ứng.

Đưa ra:

ValueError -- nếu m không phải là ma trận vuông, không đối xứng, hoặc nếu vòng lặp xoay Jacobi không hội tụ.

numpy.linalg.inv(m: ndarray) ndarray

Tính ma trận nghịch đảo của một ma trận vuông.

Tham số:

m -- một ma trận vuông hai chiều.

Trả về:

ma trận nghịch đảo của m dưới dạng numpy.ndarray kiểu float.

Đưa ra:

ValueError -- nếu m không phải là ma trận vuông hoặc là ma trận suy biến.

Phép nghịch đảo được thực hiện bằng phương pháp khử Gauss-Jordan.

numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray

Tính chuẩn 2-norm của một vectơ hoặc ma trận.

Tham số:
  • x -- một numpy.ndarray, tuple, list, hoặc range.

  • axis -- trục tùy chọn để tính chuẩn. Nếu là None (mặc định), chuẩn được tính trên toàn bộ đầu vào đã được làm phẳng và trả về một giá trị float đơn. Ngược lại, chuẩn được rút gọn theo trục đó và trả về một numpy.ndarray.

Trả về:

hoặc là float của Python (khi axisNone hoặc khi x là một đối tượng có thể lặp khác ndarray) hoặc một numpy.ndarray với trục đó đã bị loại bỏ.

Chuẩn 2-norm được tính theo công thức sqrt(sum(x*x)) sử dụng giá trị trung bình chạy ổn định về mặt số học, do đó phép toán không cần bộ nhớ lưu trữ bổ sung tỉ lệ với kích thước đầu vào.

numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]

Phân tích một ma trận thành tích của một ma trận trực chuẩn và một ma trận tam giác trên.

Tham số:
  • m -- một ma trận hai chiều có kích thước (M, N).

  • mode -- có thể là 'reduced' (mặc định) hoặc 'complete'. Ở chế độ 'complete', Q có kích thước (M, M)R có kích thước (M, N). Ở chế độ 'reduced', QR được cắt bớt theo min(M, N) cột và hàng đầu tiên.

Trả về:

một tuple 2 phần tử (Q, R) gồm các đối tượng numpy.ndarray sao cho m == Q @ R, trong đó Q là trực chuẩn và R là tam giác trên.

Đưa ra:
  • TypeError -- nếu m không phải là numpy.ndarray.

  • ValueError -- nếu m không phải là mảng hai chiều hoặc mode không thuộc các giá trị được chấp nhận.

Phân tích được thực hiện thông qua các phép xoay Givens liên tiếp.