I run a qr factorization
in numpy
它返回一个列表ndarrays
,即Q
and R
:
>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))
R
是一个二维数组,底部有旋转的零线(甚至在我的测试集中的所有示例中都得到了证明):
>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]
。现在我想分R
在两个矩阵中R_~
:
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]]
and R_0
:
[[ 0. 0. 0. ]]
(提取所有零线)。它似乎接近这个解决方案:删除numpy数组中的行 https://stackoverflow.com/questions/3877491/deleting-rows-in-numpy-array.
EDIT:
更有趣的是:np.linalg.qr()
返回一个n x n
-矩阵。不,正如我所期望的:
A := n x m
Q := n x m
R := n x m