Tôi có ma trận A
và tôi muốn 2 ma trận U
và L
sao cho U
chứa các phần tử hình tam giác trên của A (tất cả các phần trên và không bao gồm đường chéo) và tương tự cho L
(tất cả các phần tử bên dưới và không bao gồm đường chéo). Có phương pháp numpy
để thực hiện việc này không?trích xuất phần hình tam giác trên/dưới của một ma trận sần?
ví dụ
A = array([[ 4., 9., -3.],
[ 2., 4., -2.],
[-2., -3., 7.]])
U = array([[ 0., 9., -3.],
[ 0., 0., -2.],
[ 0., 0., 0.]])
L = array([[ 0., 0., 0.],
[ 2., 0., 0.],
[-2., -3., 0.]])
Đối với OP: Thường hữu ích khi biết rằng họ cũng có tham số 'k', để đường chéo trích xuất ở trên hoặc dưới (có thể là _really_ hữu ích khi bạn cần!). Ngoài ra, có các hàm 'np.triu_indices',' np.tril_indices', 'np.triu_indices_from' và' np.tril_indices_from' để tạo chỉ mục để lập chỉ mục tam giác trên hoặc dưới. (Các phiên bản "từ" chỉ lấy một mảng đầu vào thay vì một hình dạng) –