uruchomić qr factorization
w numpy
która zwraca lista ndarrays
, mianowicie Q
i R
:usunąć zerowe linie 2-D numpy tablicy
>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))
R
jest dwuwymiarową tablicą, że obraca zerowej linii w dno (nawet dla wszystkich przykładów z mojego zestawu testowego):
>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]
. Teraz chcę podzielić R
w dwóch macierzach R_~
:
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]]
i R_0
:
[[ 0. 0. 0. ]]
(wydobywania wszystkie zerowej linii). Wydaje się być blisko tego rozwiązania: deleting rows in numpy array.
EDYTOWANIE: Jeszcze ciekawiej: np.linalg.qr()
zwraca matrycę n x n
. Nie, co by się było spodziewać:
A := n x m
Q := n x m
R := n x m
co jeśli oś = 0? – denfromufa
@denfromufa 'axis = 0' usunie wszystkie zero * kolumn *. – ecatmur
, co jest oczywiste, problematyczne jest to, że tego filtrowania nie można zastosować tak, jak dla "osi = 0", zamiast tego konieczna jest transpozycja – denfromufa