Rumah > pembangunan bahagian belakang > Tutorial Python > Program Python untuk mendarab dua matriks menggunakan tatasusunan berbilang dimensi

Program Python untuk mendarab dua matriks menggunakan tatasusunan berbilang dimensi

WBOY
Lepaskan: 2023-09-11 17:09:07
ke hadapan
701 orang telah melayarinya

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.

Senario input dan output

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]
Salin selepas log masuk

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]
Salin selepas log masuk

Gunakan Untuk Gelung

Dengan gelung bersarang, kami akan melakukan pendaraban pada dua matriks dan menyimpan hasilnya dalam matriks ketiga.

Contoh

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)
Salin selepas log masuk

Output

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]
Salin selepas log masuk

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).

Contoh

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) 
Salin selepas log masuk

Output

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]]
Salin selepas log masuk

Pengendali pendaraban @ tersedia daripada versi Python 3.5+, jika tidak, kita boleh menggunakan fungsi numpy.dot().

Contoh

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)
Salin selepas log masuk

Output

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]]
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan