It seems to me that using shapes, (m,1) versus (1,n), to determine whether a vector is column- or row-oriented is a hack (or at least feels like one). If we know we have a vector, then we want to use a single index to obtain a scalar, and that extra "0," or ",0" shouldn't be necessary. It also seems to me that there is an object-oriented design solution to this, namely defining column_vector and row_vector classes that inherit from matrix, that accept a single index, but behave as matrices consistent with their type. I'm sure there are implications to this I haven't thought through yet, but at least it gives us logical indexing AND persistence of matrices through operations. On Mar 27, 2007, at 1:11 PM, Travis Oliphant wrote:
Thanks for listing your points. I can see that this is an issue where reasonable people will disagree because there are multiple ways of looking at it.
The idea that matrix selection would return matrices really comes from wanting to keep matrices more persistent through operations.
M[0] could be seen either as a 1xn matrix or a n-length array. I agree that both concepts are possible. Seeing it as a 1xn matrix allows matrices to remain persistent more often.
So, the arguments for the current approach and the arguments against it to me seem on the same level, so I don't see a reason to change the current behavior and see a lot of strong reasons not to change the behavior (we are in a 1.0 release and could not change anything until at least 1.1 anyway).
With that said:
One of my goals for the next year or two is to create a matrix class in C and incorporate CVXOPT matrices and it's coupled sparse matrix. We can re-visit this question in that process. I would like for there to be a sparse matrix implementation in NumPy (without the solver which will remain in SciPy).
But, the sparse matrix and the matrix need to have the same behaviors and should be able to interoperate with each other.
So, if you would like to help with that project all input is welcome.
** Bill Spotz ** ** Sandia National Laboratories Voice: (505)845-0170 ** ** P.O. Box 5800 Fax: (505)284-5451 ** ** Albuquerque, NM 87185-0370 Email: wfspotz@sandia.gov **