[Numpy-discussion] curious problem with SVD

Robert Kern robert.kern@gmail....
Fri Jul 25 14:50:24 CDT 2008


On Fri, Jul 25, 2008 at 14:32, Frank Lagor <dfranci@seas.upenn.edu> wrote:
> Perhaps I do not understand something properly, if so could someone please
> explain the behavior I notice with numpy.linalg.svd when acting on arrays.
> It gives the incorrect answer, but works fine with matrices.  My numpy is
> 1.1.0.
>
>>>> R = n.array([[3.6,.35],[.35,1.8]])
>>>> V,D,W = n.linalg.svd(R)
>>>> V*n.diag(D)*W.transpose()

For regular arrays, * is element-wise multiplication, not matrix
multiplication. For matrix objects, * is matrix multiplication.

-- 
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


More information about the Numpy-discussion mailing list