Search code examples
python-3.xnumpymatrixmatrix-multiplication

What is the Logic behind this matrix multiplication?


I am trying to multiply these 1 dimensional matrices( or vectors) with each other as follows :

a = np.array([1,2,3]).reshape(1,3)

b = np.array([4,5,6]).reshape(1,3)

c = np.dot(a,b)

print(c) outputs ab error as 'shapes (1,3) and (1,3) not aligned' which are correct as per the matrix multiplication laws.

But when I do c = a*b and print(c) I get a 1 x 3 matrix - array([[ 4, 10, 18]]).

my question is how 1 X 3 * 1 X 3 matrix multiplication is yielding a 1 X 3 matrix ? Columns of first matrix should equal the rows of second. Isn't it?

Moreover, it would be great if any of you can shed some more info on how a dot product of 2 matrices of shapes(i,j) differs from its multiplication a*b?


Solution

  • The dot method performs a matrix multiplication like you'd expect. The * operator takes two matrices of the same dimensions and multiplies their corresponding elements, thus producing a result of the same dimensions.