Hi Gary,
On 5/1/06, Gary Ruben
Hi Bill,
It looks to me like dot() is doing the right thing. Can you post an example of why you think it's wrong?
It /is/ behaving as documented, if that's what you mean. But the question is why it acts that way. Simple example:
numpy.__version__, os.name ('0.9.5', 'nt') a = numpy.asmatrix([1.,2.,3.]).T a matrix([[ 1.], [ 2.], [ 3.]]) numpy.dot(a,a) Traceback (most recent call last): File "<input>", line 1, in ? ValueError: matrices are not aligned numpy.dot(a.T,a) matrix([[ 14.]])
Everywhere I've ever encountered a dot product before it's been equivalent to the transpose of A times B. So a 'dot()' function that acts exactly like a matrix multiply is a bit surprising to me. After poking around some more I found numpy.vdot() which is apparently supposed to do the standard "vector" dot product. However, all I get from that is:
a matrix([[ 1.], [ 2.], [ 3.]]) numpy.vdot(a,a) Traceback (most recent call last): File "<input>", line 1, in ? ValueError: vectors have different lengths
Also in the same numpy.core._dotblas module as dot and vdot, there's an 'inner', which claims to be an inner product, but seems to only work when called with both arguments transposed as follows:
numpy.inner(a.T, a.T) array([[ 14.]])
2a) re. the docstring - this looks like a 'bug'; presumably an old
docstring not correctly updated.
I think maybe 'matrixproduct' is supposed to be 'matrixmultiply' which /is/ a synonym for dot. 2b) "generic numpy equivalent" - agree that this isn't very enlightening. -- William V. Baxter III OLM Digital Kono Dens Building Rm 302 1-8-8 Wakabayashi Setagaya-ku Tokyo, Japan 154-0023 +81 (3) 3422-3380
participants (2)
-
Bill Baxter
-
Gary Ruben