# NumPy: Dot Product of two Arrays

In this tutorial, you will learn how to find the dot product of two arrays using NumPy's numpy.dot() function.

For two scalars (or 0 Dimensional Arrays), their dot product is equivalent to simple multiplication; you can use either numpy.multiply() or plain *. Below is the dot product of $2$ and $3$.

				
import numpy as np

dotproduct = np.dot(2,3)

print(dotproduct)



The script will print

				
6



# 1 Dimensional Arrays

Consider two two-dimensional vectors, $\mathbf{a} = a_{x}\mathbf{i} + a_{y}\mathbf{j}$ and $\mathbf{b} = b_{x}\mathbf{i} + b_{y}\mathbf{j}$. Their dot product (also called scalar product) is defined by

$$\mathbf{a}\cdot\mathbf{b} = a_{x}b_{x} + a_{y}b_{y}$$

So, given the vectors $\mathbf{u} = 2\mathbf{i} - 5\mathbf{j}$ and $\mathbf{v} = \mathbf{i} + 3\mathbf{j}$ their dot product is

$$\mathbf{u} \cdot \mathbf{v} = 2 \times 1 + (-5) \times3 = -13$$

NumPy has the numpy.dot() function to find the dot product of two arrays. Representing the vectors $u$ and $v$ as 1D arrays, we write the script below to compute their dot product.

					
import numpy as np

u = [2,-5]
v = [1,3]
dotproduct = np.dot(u,v)

print(dotproduct)



On running the script, it will result in

					
-13



# 2 Dimensional Arrays

Now if the arrays are two-dimensional, numpy.dot() will result in matrix multiplication. As an example, consider the below two two-dimensional arrays

$$\mathbf{u} = [[2,-3],[1,9]] \\ \mathbf{v} = [[0,1],[1,-4]]$$

We find their dot product in NumPy,

					
import numpy as np

u = [[2,-3],[1,9]]
v = [[0,1],[1,-4]]
dotproduct = np.dot(u,v)

print(dotproduct)



and this script results in

					
[[ -3  14]
[  9 -35]]



The above operation actually is matrix multiplication. We can use numpy.matmul() for the above two arrays and arrive at the same result. The below script

					
import numpy as np

u = [[2,-3],[1,9]]
v = [[0,1],[1,-4]]
matrixproduct = np.matmul(u,v)

print(matrixproduct)



also results in the same array

					
[[ -3  14]
[  9 -35]]