я запустить qr factorization
в numpy
, который возвращает список ndarrays
, а именно Q
и R
:удалить нулевые строки 2-D NumPy массива
>>> [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. ]]
(извлечение всех нулевые строки). Это похоже на это решение: deleting rows in numpy array.
EDIT:
Еще более интересно: np.linalg.qr()
возвращает n x n
-матрица. Не то, что я ожидал бы:
A := n x m
Q := n x m
R := n x m
Что делать, если ось = 0? – denfromufa
@denfromufa 'axis = 0' удалит все нулевые * столбцы *. – ecatmur
Очевидно, что проблематично то, что эта фильтрация не может быть применена, как и для 'axis = 0', вместо этого требуется транспонирование – denfromufa