On Tue, Jan 19, 2010 at 15:12, Gael Varoquaux <gael.varoqu...@normalesup.org> wrote: > On Tue, Jan 19, 2010 at 02:58:32PM -0600, Robert Kern wrote: >> > I am not sure that what I am doing is optimal. > >> If confounds is orthonormal, then there is no need to use lstsq(). > >> y = y - np.dot(np.dot(confounds, y), confounds) > > Unfortunately, confounds is not orthonormal, and as it is different at > each call, I cannot orthogonalise it as a preprocessing.
Ah, then you shouldn't have said "Yes" when I asked if they were orthonormal. :-) However, you can orthonormalize inside the function and reuse that for both x and y. Using the QR decomposition is likely cheaper than the SVD that lstsq() does. ortho_confounds = linalg.qr(confounds.T)[0].T -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion