[SciPy-User] Dot product of two arrays of vectors

Robert Cimrman cimrman3@ntc.zcu...
Thu Oct 4 06:43:47 CDT 2012


On 10/04/2012 01:25 PM, Alexander Kalinin wrote:
> Hello, SciPy,
>
> Could you, please, explain me, what is the most standard way in NumPy to
> calculate a dot product of two arrays of vectors, like in MatLab? For
> example, consider two numpy arrays of vectors:
>
> a = np.array([[1, 2, 3], [4, 5, 6]])
> b = np.array([[3, 2, 1], [6, 5, 4]])
>
> For the cross product we have convenient function numpy.cross:
>>>> np.cross(a, b)
> array([[ -4,   8,  -4],
>         [-10,  20, -10]])
>
> But the numpy.dot product for the arrays of vectors do the matrix
> multiplication:
>>>> np.dot(a, b)
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> ValueError: objects are not aligned
>
> Yes, I can emulate the dot product code like:
>
> np.sum(a * b, axis = 1).reshape(-1, 1)
> but may be there is exist more standard way to do the dot product?

You could try using:

from numpy.core.umath_tests import matrix_multiply

if your numpy is recent enough.

Cheers,
r.



More information about the SciPy-User mailing list