Rumah > Artikel > pembangunan bahagian belakang > Program Python untuk mendarab dua matriks menggunakan tatasusunan berbilang dimensi
Matriks ialah satu set nombor yang disusun dalam baris dan lajur. Matriks dengan m baris dan n lajur dipanggil matriks m X n, dan m dan n dipanggil dimensinya. Matriks ialah tatasusunan dua dimensi yang dibuat dalam Python menggunakan senarai atau tatasusunan NumPy.
Secara amnya, pendaraban matriks boleh dilakukan dengan mendarab baris matriks pertama dengan lajur matriks kedua. Di sini, bilangan lajur matriks pertama hendaklah sama dengan bilangan baris matriks kedua.
Andaikan kita mempunyai dua matriks A dan B, dimensi kedua-dua matriks ini ialah 2X3 dan 3X2 masing-masing. Matriks yang terhasil selepas pendaraban akan mempunyai 2 baris dan 1 lajur.
[b1, b2] [a1, a2, a3] * [b3, b4] = [a1*b1+a2*b2+a3*a3] [a4, a5, a6] [b5, b6] [a4*b2+a5*b4+a6*b6]
Selain itu, kita juga boleh melakukan pendaraban mengikut unsur bagi matriks. Dalam kes ini, kedua-dua matriks input mesti mempunyai bilangan baris dan lajur yang sama.
[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]
Dengan gelung bersarang, kami akan melakukan pendaraban pada dua matriks dan menyimpan hasilnya dalam matriks ketiga.
Dalam contoh ini, kami akan memulakan matriks hasil dengan semua sifar untuk menyimpan hasil pendaraban.
# 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]
Bilangan baris dan lajur matriks pertama (matriks_a) ialah 3, dan bilangan baris dan lajur matriks kedua (matriks_b) ialah 3. Matriks yang terhasil selepas mendarab kedua-dua matriks ini (matriks_a, matriks_b) akan mempunyai 3 baris dan 4 lajur (iaitu 3X4).
Fungsi numpy.array() digunakan di sini untuk mencipta matriks supaya kita boleh melakukan pendaraban matriks menggunakan 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]]
Pengendali pendaraban @ tersedia daripada versi Python 3.5+, jika tidak, kita boleh menggunakan fungsi numpy.dot().
Dalam contoh ini, kami akan melakukan pendaraban mengikut unsur bagi dua tatasusunan numpy menggunakan operator asterisk (*).
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]]
Atas ialah kandungan terperinci Program Python untuk mendarab dua matriks menggunakan tatasusunan berbilang dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!