[Numpy-discussion] curious problem with SVD
Arnar Flatberg
arnar.flatberg@gmail....
Fri Jul 25 14:53:09 CDT 2008
On Fri, Jul 25, 2008 at 9:39 PM, Keith Goodman <kwgoodman@gmail.com> wrote:
> On Fri, Jul 25, 2008 at 12:36 PM, Keith Goodman <kwgoodman@gmail.com>
> wrote:
> > On Fri, Jul 25, 2008 at 12:32 PM, 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
>
> > '*' does element-by-element multiplication for arrays but matrix
> > multiplication for mat
> >> n.dot(V, n.dot(n.diag(D), W.transpose())) # That's hard to read!
Just two small points:
1.) Broadcasting may be easier on the eye ... well, atleast when you have
gotten used to it
Then the above is np.dot(V*D, W)
2.) Also, note that the right hand side eigenvectors in numpy's svd routine
is ordered by rows!
Yes, I know this is confusing as it is different from just about any other
linear algebra software out there, but the documentation is clear. It is
also a little inconsistent with eig and eigh, some more experienced user can
probably answer on why it is like that?
Arnar
> <http://projects.scipy.org/mailman/listinfo/numpy-discussion>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20080725/49581a2d/attachment-0001.html
More information about the Numpy-discussion
mailing list