**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]