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

George Nurser gnurser@gmail....
Thu Oct 4 08:29:31 CDT 2012

```Tensordot may be what you're after. It gives a lot of flexibility.
cheers, George.

On 4 October 2012 14:26, Alexander Kalinin <alec.kalinin@gmail.com> wrote:
> Could you, please, explain me more about matrix_multiply? I tried the
> following:
>
>>>> import numpy.core.umath_tests as ut
>>>> ut.matrix_multiply.signature
> '(m,n),(n,p)->(m,p)'
>>>>
>
> So, I see the the matrix_multiply is the usual matrix product.
>
> Sincerely,
> Alexander
>
>
> On Thu, Oct 4, 2012 at 3:43 PM, Robert Cimrman <cimrman3@ntc.zcu.cz> wrote:
>>
>> 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.
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>
>
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
```