NumPy matmul() Function:
Numpy matmul: Matrix product of two arrays is returned by the matmul() function of the NumPy module. Specifically,
While it gives a normal product for 2-D arrays, if either argument’s dimensions are greater than two(>2), it is considered as a stack of matrices residing in the last two indexes and broadcast as such.
If either argument is a 1-D array, it is converted to a matrix by adding a 1 to its dimension, which is then removed after multiplication.
Note: The matmul() function does not support scalar multiplication.
Syntax:
numpy.matmul(a, b, out=None)
Parameters
a: This is required. It is the first array_like parameter given as input. Scalars are not accepted.
b: This is required. It is the second array_like parameter given as input.
out: This is optional. It is the output array for the result. None is the default value. It must have the same shape as output if it is provided.
Return Value:
The matrix product of the given two arrays is returned.
Note: If the last dimension of “a” is not the same size as the second-to-last dimension of b, or if a scalar value is provided in, a ValueError exception is thrown.
NumPy matmul() Function in Python
Example1: For 1D arrays
Matmul python: The function returns the inner product of two 1-D arrays when two 1-D arrays are used.
Approach:
- Import numpy module using the import keyword.
- Give the first array as static input and store it in a variable.
- Give the second array as static input and store it in another variable.
- Pass the given two array’s as an argument to the matmul() function of numpy module to get the inner product of the given two arrays.
- Store it in another variable.
- Print the inner product of the given two arrays.
- The Exit of the Program.
Below is the implementation:
# Import numpy module using the import keyword
import numpy as np
# Give the first array as static input and store it in a variable.
fst_arry = [1, 9, 2]
# Give the second array as static input and store it in another variable.
scnd_arry = [10, 3, 5]
# Pass the given two array's as an argument to the matmul() function of numpy module
# to get the inner product of the given two arrays.
# (1*10 + 9*3 + 2*5) = 47
# Store it in another variable.
rslt = np.matmul(fst_arry, scnd_arry)
# Print the inner product of the given two arrays.
print("The inner product of the given two arrays = ", rslt)
Output:
The inner product of the given two arrays = 47
Example2
The function returns matrix multiplication when 2D matrices are used.
Approach:
- Import numpy module using the import keyword.
- Pass the random list(2D) as an argument to the array() function to create an array.
- Store it in a variable.
- Pass the random list(2D) as an argument to the array() function to create another array.
- Store it in another variable.
- Pass the given two array’s as the argument to the matmul() function of numpy module to get the matrix multiplication of given two arrays(matrices).
- Store it in another variable.
- Print the matrix multiplication of given two arrays(matrices).
- The Exit of the Program.
Below is the implementation:
# Import numpy module using the import keyword
import numpy as np
# Pass the random list(2D) as an argument to the array() function
# to create an array.
# Store it in a variable.
fst_arry = np.array([[5, 6],
[1, 3]])
# Pass the random list(2D) as an argument to the array() function
# to create another array.
# Store it in another variable.
scnd_arry = np.array([[12, 2],
[4, 1]])
# Pass the given two array's as the argument to the matmul() function of numpy module
# to get the matrix multiplcation of given two arrays(matrices)
# Store it in another variable.
rslt = np.matmul(fst_arry, scnd_arry)
# Print the matrix multiplication of given two arrays(matrices)
print("The matrix multiplication of given two arrays(matrices) = ")
print(rslt)
Output:
The matrix multiplication of given two arrays(matrices) = [[84 16] [24 5]]
Example3: 2D array+1D array
Approach:
- Import numpy module using the import keyword.
- Give the random 2D array as static input and store it in a variable.
- Give the random 1D array as static input and store it in another variable.
- Pass the given two array’s as an argument to the matmul() function of numpy module to get the multiplication of the given two arrays and print it.
- Similarly print, vice-varsa by swapping two arrays.
- The Exit of the Program.
Below is the implementation:
# Import numpy module using the import keyword import numpy as np # Give the random 2D array as static input and store it in a variable. arry_2D = [[2,1],[3,2]] # Give the random 1D array as static input and store it in another variable. arry_1D = [3,1] # Pass the given two array's as an argument to the matmul() function of numpy module # to get the multiplication of given two arrays and print it. # Similarly print, vice-varsa by swapping two arrays print(np.matmul(arry_2D, arry_1D)) print() print(np.matmul(arry_1D, arry_2D))
Output:
[ 7 11] [9 5]