[Numpy-discussion] curious problem with SVD
Keith Goodman
kwgoodman at gmail.com
Fri Jul 25 15:36:28 EDT 2008
On Fri, Jul 25, 2008 at 12:32 PM, Frank Lagor <dfranci at 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()
> array([[ 3.5410365 , 0. ],
> [ 0. , 1.67537611]])
>>>> R = n.matrix([[3.6,.35],[.35,1.8]])
>>>> V,D,W = n.linalg.svd(R)
>>>> V*n.diag(D)*W.transpose()
> matrix([[ 3.6 , 0.35],
> [ 0.35, 1.8 ]])
'*' does element-by-element multiplication for arrays but matrix
multiplication for matrices.
More information about the NumPy-Discussion
mailing list