NumPy - matmul() function
The NumPy matmul() function is used to perform matrix product of two arrays. Specifically,
- If both a and b are 2-D arrays, it is matrix multiplication.
- If a or b is 1-D, it is promoted to a matrix by prepending a 1 to its dimensions. After matrix multiplication the prepended 1 is removed.
- If either argument is N-D, N > 2, it is treated as a stack of matrices residing in the last two indexes and broadcast accordingly.
Please note that multiplication by scalars is not allowed by this function.
Syntax
numpy.matmul(a, b, out=None)
Parameters
a |
Required. Specify first array-like argument. scalars not allowed. |
b |
Required. Specify second array-like argument. scalars not allowed. |
out |
Optional. Specify output array for the result. The default is None. If provided, it must have the same shape as output. |
Return Value
Returns the matrix product of the two arrays.
Exception
Raises ValueError exception, if the last dimension of a is not the same size as the second-to-last dimension of b or a scalar value is passed in.
Example: matmul() function with 1-D arrays
When two 1-D arrays are used, the function returns inner product of the arrays.
import numpy as np Arr1 = [5, 8] Arr2 = [10, 20] #returns 5*10 + 8*20 = 210 print(np.matmul(Arr1, Arr2))
The output of the above code will be:
210
Example: matmul() function with matrix
When two matrix are used, the function returns matrix multiplication.
import numpy as np Arr1 = np.array([[1, 2], [3, 4]]) Arr2 = np.array([[10, 20], [30, 40]]) Arr3 = np.matmul(Arr1, Arr2) print(Arr3)
The output of the above code will be:
[[ 70 100] [150 220]]
The matrix multiplication is calculated as:
[[1*10+2*30 1*20+2*40] [3*10+4*30 3*20+4*40]] = [[ 70 100] [150 220]]
❮ NumPy - Functions