NumPy | matmul Method
Start your free 7-days trial now!
Numpy's matmul(~)
method is used to perform compute the product of two arrays. These arrays can be vectors, matrices and even higher dimensions.
matmul(~)
is strikingly similar to Numpy's dot(~)
method. The difference is as follows:
matmul(~)
does not support scalar multiplications, whiledot(~)
does.matmul(~)
method is preferred over Numpy'sdot(~)
method when you need to perform matrix multiplication.
Parameters
1. a
| array_like
✜ The first argument.
2. b
| array_like
✜ The second argument.
Return value
The following table succinctly summaries what operation is performed as well as the return type:
a | b | operation | Return type |
---|---|---|---|
1D array | 1D array | Vector dot product | number |
2D array | 1D array | Matrix-vector product | 1D Numpy array |
2D array | 2D array | Matrix-matrix multiplication | 2D Numpy array |
n-D array | n-D array | Batch products | n-D Numpy array |
Examples
Matrix-vector product
x = [[1,0], [0,1]]y = [5,5]np.matmul(x,y)
array([5, 5])
Mathematically, we're doing the following:
Matrix-matrix product
x = [[1,0], [0,1]]y = [[2,2], [2,2]]np.matmul(x,y)
array([[2, 2], [2, 2]])
Mathematically, we're doing the following:
Always remember that parameters just need to be array-like; we can use Numpy arrays as well:
x = np.array([[1,0], [0,1]])y = np.array([[2,2], [2,2]])np.matmul(x, y)
array([[2, 2], [2, 2]])
Batch products
The matmul(~)
method can be used to compute multiple products at once, like follows:
x = [ [[1,0], [0,1]], [[1,1], [1,1]] ]y = [3,4]np.matmul(x,y)
array([[3, 4], [7, 7]])
In this example, the variable x
holds the following two matrices:
The final line, np.matmul(x,y)
, is performing the following mathematical operations:
Note that batch products also for vector-vector product and matrix-matrix product as wel