[Numpy-discussion] Should dot return 1x1 matrix as scalar?

Alan G Isaac aisaac at american.edu
Fri Jan 13 06:41:05 CST 2006


On Fri, 13 Jan 2006, "Paulo J. S. Silva" apparently wrote: 
> I was playing with the matrix type in numpy and I felt the "need" to 
> have the "dot" function returning a 1x1 matrix as a scalar. 

Since a 1x1 matrix is not a scalar,
the current behavior is desirable, IMO.
Specifically, I want an error in the last
example below, since otherwise matrix multiplication
will not be associative.
Cheers,
Alan Isaac


PS Current behavior:
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit 
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as N
>>> x = N.mat(range(10))
>>> x
matrix([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
>>> x*x.T
matrix([[285]])
>>> 285*x
matrix([[   0,  285,  570,  855, 1140, 1425, 1710, 1995, 2280, 2565]])
>>> (x*x.T)*(x.T*x)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "C:\Python24\Lib\site-packages\numpy\core\defmatrix.py", line 128, in __m
ul__
    return N.dot(self, other)
ValueError: objects are not aligned






More information about the Numpy-discussion mailing list