Я запустил qr factorization в numpy, который возвращает список ndarrays, а именно Q и 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]]
и R_0:
[[ 0. 0. 0. ]]
(извлечение всех нулевых строк). Это похоже на это решение: удаление строк в массиве numpy.
EDIT:
Еще интереснее: np.linalg.qr() возвращает a n x n -матрицу. Не, чего бы я ожидал:
A := n x m
Q := n x m
R := n x m