[Numpy-discussion] Detect subclass of ndarray

Colin J. Williams cjw@sympatico...
Sat Mar 24 13:06:16 CDT 2007


Charles R Harris wrote:
> 
> 
> On 3/24/07, *Alan G Isaac* <aisaac@american.edu 
> <mailto:aisaac@american.edu>> wrote:
> 
>     On Fri, 23 Mar 2007, Charles R Harris apparently wrote:
>      > the following gives the wrong result:
>      > In [15]: I = matrix(eye(2))
>      > In [16]: I*ones(2)
>      > Out[16]: matrix([[ 1.,  1.]])
>      > where the output should be a column vector.
> 
>     Why should this output a column?
>     I would prefer an exception.
>     Add the axis if you want it:
>     I*ones(2)[:,None]
>     works fine.
> 
> 
> Because it is mathematically correct. You can't multiply a vector by a 
> 2x2 matrix and get a 1x2 matrix as the result. Sure, there are work 
> arounds, but if matrix multiplication is going to work when mixed with 
> arrays, it should work correctly.
> 
> Chuck
> 
It depends on the convention you use when working with matrices.

Suppose you adopt the notion, for matrices, a vector is always 
represented by a matrix.  This a row vector would have the shape (1, n) 
and the column vector would have (n, 1).

If A were a (3, 4) matrix  and b were a 4 element column vector, then
the product of A by b, using matrix arithmetic, would give a 3 element 
column vector.

Colin W.
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion



More information about the Numpy-discussion mailing list