[SciPy-user] why does linalg.sqrtm return an array?
Robert Kern
robert.kern@gmail....
Thu Oct 9 18:34:40 CDT 2008
On Thu, Oct 9, 2008 at 13:26, Brian Blais <bblais@bryant.edu> wrote:
> Hello,
> I was just bitten by the fact that sqrtm returns an array, not a matrix.
> Every time I tried to test it with Q*Q, or Q.T*Q I got very strange results
> (I was just about to post that it was seriously broken). Then I found out
> that it returns an array! Why is that? It would seem that if you are doing
> a matrix square root, you are working with matrices mostly in that
> calculation, so a matrix is the consistent thing to return (and perhaps the
> least surprising thing to return). Is there a reason for this?
Arguably, it should return a matrix object if given a matrix object,
but it should never return a matrix object if given a pure ndarray.
Just because one is doing matrix operations doesn't mean one wants to
use matrix objects.
But the fact that it returns an ndarray when given a matrix object is
a bug, and you're welcome to fix it. It's not always easy to do,
though, so you will find many such functions which do not preserve the
type of the input(s).
--
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 SciPy-user
mailing list