tôi chạy một qr factorization
trong numpy
mà trả về một danh sách các ndarrays
, cụ thể là Q
và R
:loại bỏ zero dòng 2-D NumPy mảng
>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))
R
là một mảng hai chiều, sau khi xoay zero-dòng ở đáy (thậm chí được chứng minh cho tất cả các ví dụ trong bộ thử nghiệm của tôi):
>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]
. Bây giờ, tôi muốn chia R
trong hai ma trận R_~
:
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]]
và R_0
:
[[ 0. 0. 0. ]]
(giải nén tất cả zero-lines). Nó có vẻ là gần với giải pháp này: deleting rows in numpy array.
CHỈNH SỬA:
Thậm chí thú vị hơn: np.linalg.qr()
trả về n x n
-matrix. Không, những gì tôi đã mong đợi:
A := n x m
Q := n x m
R := n x m
nếu trục = 0 thì sao? – denfromufa
@denfromufa 'axis = 0' sẽ xóa tất cả các cột * không *. – ecatmur
rõ ràng, vấn đề là bộ lọc này không thể được áp dụng như là cho 'axis = 0', thay vào đó transpose là cần thiết – denfromufa