Я запустил 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