[Numpy-discussion] .T Transpose shortcut for arrays again
Tim Hochberg
tim.hochberg at cox.net
Thu Jul 6 11:45:13 EDT 2006
Bill Baxter wrote:
> On 7/6/06, *Tim Hochberg* <tim.hochberg at cox.net
> <mailto:tim.hochberg at cox.net>> wrote:
>
> > -) Being able to distinguish between row and column vectors; I guess
> > this is just not possible with arrays...
> >
> Why can't you distinguish between them the same way that the matrix
> class does? Shape [1, N] is a row array, shape [N,1] is column array.
>
>
> Yep, that works. But there are still various annoyances.
> - You have to remeber to specify extra brackets all the time. Like
> array([[1,2,3]]) or array([[1],[2],[3]]).
This one I can't get excited about. If you are actually creating that
many constant arrays, just define rowarray and colarray functions that
add the appropriate dimensions for you.
> - And a slice of a vector out of a matrix has to be pumped back up to
> 2-D. If x has ndim==2, then to get a column out of it you have to do
> x[:,i,None] instead of just x[:,i]. To get a row you need x[j,None]
> instead of just x[j]
Alternatively x[:,i:i+1], although that's not much better.
>
> Not horrible, but it feels a little klunky if you're used to something
> like Matlab.
Well Matlab is geared to matrices. The ndarray object has always been
more or less a tensor. I can't help feeling that loading it up with
matrix like methds is just going to lead to confusion and trouble. I
would rather work things out so that we can have a pure matrix class and
a pure ndarray class coexist in some sensible way. Figuring out how to
do that well would have fringe benefits for other stuff (masked arrays,
sparse arrays, user defined arrays of various types).
> So matrix gets rid of a few annoyances like that ... and replaces them
> with a few of its own. :-)
In theory matrix should not be annoying to Matlab users since it's whole
purpose is to keep matlab users happy. I think the big problem with
matrix is that none of the developers use it as far as I know, so no one
is motivated to clean up the rough edges.
-tim
More information about the NumPy-Discussion
mailing list