[Numpy-discussion] fixing diag() for matrices
Robert Kern
robert.kern at gmail.com
Tue Jul 25 12:55:00 EDT 2006
Sven Schreiber wrote:
> Hi,
>
> there was a thread about this before, diag() is currently only
> partly useful if you work with numpy-matrices, because the 1d->2d
> direction doesn't work, as there are no 1d-numpy-matrices. This is
> unfortunate because a numpy-matrix with shape (n,1) or (1,m) should be
> naturally treated as a vector, imho. So it would be nice if this could
> be fixed.
>
> It's probably not the most efficient solution, but what I want for
> numpy-matrix input x is to get:
>
> mat(diag(x.A.squeeze))
>
> where diag is the current implementation. This means that if x is not a
> vector ("truly 2d"), then nothing is changed. But if one of the
> dimensions of x is ==1, then it's turned into a 1d-array, and diag works
> as it should.
>
> Does that sound reasonable?
Not for numpy.diag() in my opinion. However, I won't object to a
numpy.matlib.diag() that knows about matrix objects and behaves the way you want.
--
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