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]