[Numpy-discussion] defmatrix.py

Charles R Harris charlesr.harris at gmail.com
Mon Mar 26 17:43:36 EDT 2007


On 3/26/07, Travis Oliphant <oliphant at ee.byu.edu> wrote:
>
> Charles R Harris wrote:
>
> >
> >
> > On 3/26/07, *Travis Oliphant* <oliphant at ee.byu.edu
> > <mailto:oliphant at ee.byu.edu>> wrote:
> >
> >     Charles R Harris wrote:
> >
> >     >
> >     >
> >     > On 3/26/07, *Nils Wagner* <nwagner at iam.uni-stuttgart.de
> >     <mailto:nwagner at iam.uni-stuttgart.de>
> >     > <mailto: nwagner at iam.uni-stuttgart.de
> >     <mailto:nwagner at iam.uni-stuttgart.de>>> wrote:
> >     >
> >     >     Charles R Harris wrote:
> >     >     >
> >     >     >
> >     >     > On 3/25/07, *Nils Wagner* <nwagner at iam.uni-stuttgart.de
> >     <mailto:nwagner at iam.uni-stuttgart.de>
> >     >     <mailto:nwagner at iam.uni-stuttgart.de
> >     <mailto:nwagner at iam.uni-stuttgart.de>>
> >     >     > <mailto: nwagner at iam.uni-stuttgart.de
> >     <mailto:nwagner at iam.uni-stuttgart.de>
> >     >     <mailto:nwagner at iam.uni-stuttgart.de
> >     <mailto:nwagner at iam.uni-stuttgart.de>>>> wrote:
> >     >     >
> >     >     >     Hi,
> >     >     >
> >     >     >
> >     >
> >     >  <snip>
> >     >
> >     > Ok, things should be working now. In order to get rid of the scipy
> >     > problems I just needed to rm the scipy package in site-packages
> and
> >     > then reinstall.
> >     >
> >     > I still need to figure out a real fix down in the dot routine
> >     because
> >
> >
> >     No, don't fix the dot routine.  Remember the dot routine should
> accept
> >     mixed 2-d arrays and 1-d arrays because it is more general than
> matrix
> >     multiplication.
> >
> >
> > Sure, but it can't return a row vector when multiplying a 1-d vector.
> > It just ain't mathematically possible no matter how the 1-d vector is
> > interpreted. It needs to return either a column vector or a 1-d vector.
>
> Ah.. I see what your point is.
>
> How to fix that.   The problem is choosing the Python type of the output
> array.  It's being selected as matrix right now because of the
> precedence of the matrix subtype, but it should be chosen as array in
> this instance.    Perhaps we should make dot always choose the array as
> the output type??


I think that might be the simplest thing, dot overrides subtypes. BTW, here
is another ambiguity

In [6]: dot(array([[1]]),ones(2))
---------------------------------------------------------------------------
exceptions.ValueError                                Traceback (most recent
call last)

/home/charris/<ipython console>

ValueError: matrices are not aligned

Note that in this case dot acts like the rhs is always a column vector
although it returns a 1-d vector. I don't know that this is a bad thing, but
perhaps we should extend this behaviour to matrices, which would be
different from the now current 1-d is always a *row* vector, i.e.

In [8]: mat([[1]])*ones(2)
Out[8]: matrix([[ 1.,  1.]])

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20070326/bf0baa3b/attachment.html>


More information about the NumPy-Discussion mailing list