On 3/26/07, Travis Oliphant <[EMAIL PROTECTED]> wrote:
Charles R Harris wrote: > > > On 3/26/07, *Travis Oliphant* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Charles R Harris wrote: > > > > > > > On 3/26/07, *Nils Wagner* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> wrote: > > > > Charles R Harris wrote: > > > > > > > > > On 3/25/07, *Nils Wagner* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> > > > <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>>> 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
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion