corro un qr factorization
en numpy
que devuelve una lista de ndarrays
, a saber Q
y R
:eliminar cero líneas 2-D de matriz numpy
>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))
R
es una matriz de dos dimensiones, después de haber pivotado cero líneas en el fondo (incluso probado para todos los ejemplos en mi conjunto de prueba):
>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]
. Ahora, quiero dividir en dos matrices R
R_~
:
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]]
y R_0
:
[[ 0. 0. 0. ]]
(extracción de todas las líneas de cero). Parece estar cerca de esta solución: deleting rows in numpy array.
EDIT:
Aún más interesante: np.linalg.qr()
devuelve un -matrix n x n
. No, lo que yo hubiera esperado:
A := n x m
Q := n x m
R := n x m
¿qué ocurre si axis = 0? – denfromufa
@denfromufa 'axis = 0' eliminaría todas las columnas * cero *. – ecatmur
que es obvio, lo que es problemático es que este filtrado no se puede aplicar como es para 'axis = 0', en su lugar es necesario transponer – denfromufa