A matrix is a set of numbers arranged in rows and columns. A matrix with m rows and n columns is called an m X n matrix, and m and n are called its dimensions. A matrix is a two-dimensional array created in Python using lists or NumPy arrays.
In general, matrix multiplication can be done by multiplying the rows of the first matrix by the columns of the second matrix. Here, the number of columns of the first matrix should be equal to the number of rows of the second matrix.
Suppose we have two matrices A and B, the dimensions of these two matrices are 2X3 and 3X2 respectively. The resulting matrix after multiplication will have 2 rows and 1 column.
[b1, b2] [a1, a2, a3] * [b3, b4] = [a1*b1+a2*b2+a3*a3] [a4, a5, a6] [b5, b6] [a4*b2+a5*b4+a6*b6]
In addition, we can also perform element-wise multiplication of matrices. In this case, the two input matrices must have the same number of rows and columns.
[a11, a12, a13] [b11, b12, b13] [a11*b11, a12*b12, a13*b13] [a21, a22, a23] * [b21, b22, b23] = [a21*b21, a22*b22, a23*b23] [a31, a32, a33] [b31, b32, b33] [a31*b31, a32*b32, a33*b33]
With nested for loops, we will perform a multiplication operation on two matrices and store the result in the third matrix.
In this example, we will initialize an all-zero result matrix to store the multiplication results.
# Defining the matrix using multidimensional arrays matrix_a = [[1,2,3], [4,1,2], [2,3,1]] matrix_b = [[1,2,3,2], [2,3,6,3], [3,1,4,2]] #function for displaying matrix def display(matrix): for row in matrix: print(row) print() # Display two input matrices print('The first matrix is defined as:') display(matrix_a) print('The second matrix is defined as:') display(matrix_b) # Initializing Matrix with all 0s result = [[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]] # multiply two matrices for i in range(len(matrix_a)): # iterate through rows for j in range(len(matrix_b[0])): # iterate through columns for k in range(len(matrix_b)): result[i][j] = matrix_a[i][k] * matrix_b[k][j] print('The multiplication of two matrices is:') display(result)
The first matrix is defined as: [1, 2, 3] [4, 1, 2] [2, 3, 1] The second matrix is defined as: [1, 2, 3, 2] [2, 3, 6, 3] [3, 1, 4, 2] The multiplication of two matrices is: [9, 3, 12, 6] [6, 2, 8, 4] [3, 1, 4, 2]
The number of rows and columns of the first matrix (matrix_a) is 3, and the number of rows and columns of the second matrix (matrix_b) is 3. The resulting matrix after multiplying these two matrices (matrix_a, matrix_b) will have 3 rows and 4 columns (i.e. 3X4).
The numpy.array() function is used here to create the matrix so that we can simply do matrix multiplication using the @ operator.
import numpy as np # Defining the matrix using numpy array matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]]) matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]]) # Display two input matrices print('The first matrix is defined as:') print(matrix_a) print('The second matrix is defined as:') print(matrix_b) # multiply two matrices result = matrix_a @ matrix_b print('The multiplication of two matrices is:') print(result)
The first matrix is defined as: [[1 2 5] [1 0 6] [9 8 0]] The second matrix is defined as: [[0 3 5] [4 6 9] [1 8 0]] The multiplication of two matrices is: [[ 13 55 23] [ 6 51 5] [ 32 75 117]]
The multiplication operator @ is available starting from Python 3.5 version, otherwise, we can use the numpy.dot() function.
In this example, we will perform element-wise multiplication of two numpy arrays using the (*) asterisk operator.
import numpy as np # Defining the matrix using numpy array matrix_a = np.array([[1,2,5], [1,0,6], [9,8,0]]) matrix_b = np.array([[0,3,5], [4,6,9], [1,8,0]]) # Display two input matrices print('The first matrix is defined as:') print(matrix_a) print('The second matrix is defined as:') print(matrix_b) # multiply elements of two matrices result = matrix_a * matrix_b print('The element-wise multiplication of two matrices is:') print(result)
The first matrix is defined as: [[1 2 5] [1 0 6] [9 8 0]] The second matrix is defined as: [[0 3 5] [4 6 9] [1 8 0]] The element-wise multiplication of two matrices is: [[ 0 6 25] [ 4 0 54] [ 9 64 0]]
The above is the detailed content of Python program to multiply two matrices using multidimensional arrays. For more information, please follow other related articles on the PHP Chinese website!