[Numpy-discussion] What's wrong with matrices?
Keith Goodman
kwgoodman at gmail.com
Fri Jul 7 10:45:17 CDT 2006
On 7/7/06, Ed Schofield <schofield at ftw.at> wrote:
> I'd like to help to make matrices more usable. Tell me what you want,
> and I'll work on some patches.
I can't pass up an offer like that.
DIAG
diag(M) returns an array. It would be nice if diag(M) returned
asmatrix(diag(M)).T. It would also be nice if you can construct a
diagonal matrix directly from what is returned from diag(M). But right
now you can't:
>> x
matrix([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>> diag(x)
array([0, 4, 8])
>> d = asmatrix(diag(x)).T
>> d
matrix([[0],
[4],
[8]])
>> diag(d)
array([0]) <-- this should be a 3x3 matrix
MATRIX CONSTRUCTION
Making it easier to construct matrices would be a big help. Could the
following function be made to return matrices?
ones, zeros, rand, randn, eye, linspace, empty
I guess the big decision is how to tell numpy to use matrices. How about
from numpy.matrix import ones, zeros ?
I would prefer something even more global. Something that acts like
the global variable 'usematrix = True'. Once that is declared, the
default changes from array to matrix.
INDEXING
>> x
matrix([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>> y
matrix([[0],
[1],
[2]])
>> x[y>1,:]
matrix([[6]])
This is a big one for me. If x[y>1,:] returned
>> x[2,:]
matrix([[6, 7, 8]])
then there would no longer be a need for array :)
More information about the Numpy-discussion
mailing list