Trong hướng dẫn này, bạn sẽ học cách nhân hai ma trận trong Python. Ma trận là cấu trúc dữ liệu hai chiều trong đó các số được sắp xếp thành hàng và cột. Python không có kiểu dựng sẵn cho ma trận nhưng chúng ta có thể coi danh sách lồng nhau hoặc danh sách của danh sách dưới dạng ma trận. Danh sách là một tập hợp có thứ tự các phần tử được đặt trong dấu ngoặc vuông [ ]. Khi đó, mỗi phần tử trong danh sách sẽ được coi là một hàng của ma trận
Ví dụ: A= [ [1, 2], [3, 4]] là ma trận 2x2. Hàng đầu tiên có thể được chọn là A[0] và phần tử ở hàng đầu tiên, cột đầu tiên có thể được chọn là A[0][0]
Phép nhân hai ma trận chỉ thực hiện được nếu số cột của ma trận thứ nhất bằng số hàng của ma trận thứ hai
Nếu m và n là các hàng và cột của ma trận A, p và q là các hàng và cột của ma trận B thì phép nhân sẽ thực hiện được nếu, n=p và ma trận kết quả sẽ là,
Đầu vào
A=[ [1,2], [3,4] ]
B=[ [1,3], [2,5] ]
đầu ra. [ [5, 13], [11, 29] ]
Để nhân hai ma trận trong Python, chúng ta có thể làm theo các cách sau
- Sử dụng vòng lặp lồng nhau
- Sử dụng hiểu danh sách lồng nhau
- Sử dụng mô-đun numpy
Cách tiếp cận 1. vòng lồng nhau
Đối với cách tiếp cận này, chúng tôi sẽ sử dụng các vòng lặp lồng nhau đơn giản là một vòng lặp trong một vòng lặp, để nhân các ma trận và lưu trữ chúng trong một ma trận kết quả. Chúng ta sẽ sử dụng ba vòng lặp, vòng lặp đầu tiên sẽ lặp qua các hàng của ma trận A và vòng lặp thứ hai sẽ lặp qua các cột của ma trận A và vòng lặp thứ ba sẽ lặp qua các hàng của ma trận B
thuật toán
Thực hiện theo thuật toán để hiểu cách tiếp cận tốt hơn
Bước 1- Định nghĩa một hàm sẽ nhân hai ma trận
Bước 2- Trong hàm, khai báo một danh sách sẽ lưu danh sách kết quả
Bước 3- Lặp qua các hàng và cột của ma trận A và hàng của ma trận B
Bước 4- Nhân các phần tử của hai ma trận và lưu vào danh sách kết quả
Bước 5- In danh sách kết quả
Bước 6- Khai báo và đặt giá trị cho hai ma trận
Bước 7- Gọi hàm, kết quả sẽ được in ra
Chương trình Python 1
Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên. Chương trình này sẽ hoạt động cho ma trận 3x3
def Multiply[A,B]:
result=[ [0,0,0],[0,0,0],[0,0,0] ]
#for rows
for i in range[len[A]]:
#for columns
for j in range[len[B[0]]]:
#for rows of matrix B
for k in range[len[B]]:
result[i][j] += A[i][k] * B[k][j]
for p in result:
print[p]
return 0
A = [ [1, 2, 3],[6, 7, 4], [8, 10, 11] ]
B = [[1, 5, 3],[2, 6, 5], [7, 4, 9] ]
print["Result: "]
Multiply[A,B]
Kết quả.
[26, 29, 40]
[48, 88, 89]
[105, 144, 173]