Phép nhân ma trận
Bài học 18 trên 18 trong khóa học Nền tảng NumPy của Coddy.
Phép nhân ma trận là một chuỗi các tích vô hướng tạo ra một ma trận mới.
Cách hoạt động
Giả sử ta có hai ma trận A có kích thước (3, 2) và B có kích thước (2, 4).
Phép nhân A và B sẽ tạo ra một ma trận mới có kích thước (3, 4).
Kích thước bên trong của hai ma trận phải khớp nhau (trong trường hợp này, cả A và B đều có kích thước 2 -> (3,2)(2,4)=(3,4))
phép nhân A*b là
- tích vô hướng của hàng 1 của A với cột 1 của B cho ra phần tử tại [1, 1]
- tích vô hướng của hàng 1 của A với cột 2 của B cho ra phần tử tại [1, 2]
- ...
- ...
- tích vô hướng của hàng 2 của A với cột 1 của B cho ra phần tử tại [2, 1]
- tích vô hướng của hàng 2 của A với cột 2 của B cho ra phần tử tại [2, 2]
- ...
- ...
- vân vân.
Ví dụ:
Ma trận A:
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
Ma trận B:
| 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 |
Kết quả:
| 1*7 + 2*11 | 1*8 + 2*12 | 1*9 + 2*13 | 1*10 + 2*14 |
| 3*7 + 4*11 | 3*8 + 4*12 | 3*9 + 4*13 | 3*10 + 4*14 |
| 5*7 + 6*11 | 5*8 + 6*12 | 5*9 + 6*13 | 5*10 + 6*14 |
Sau khi tính toán:
| 29 | 32 | 35 | 38 |
| 65 | 72 | 79 | 86 |
| 101 | 112 | 123 | 134 |
Cách thực hiện trong numpy
Có 3 cách nhân ma trận:
np.matmul(matrix1, matrix2)matrix1.dot(matrix2)A @ B
import numpy as np
A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([[7, 8, 9, 10], [11, 12, 13, 14]])
np.matmul(A,B)Đầu ra:
array([[ 29, 32, 35, 38],
[ 65, 72, 79, 86],
[101, 112, 123, 134]])Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Thử thách
Tạo một hàm có tên matrix_master nhận ba danh sách Python, trả về phép nhân ma trận của hai danh sách đầu tiên rồi tính tích vô hướng của kết quả với danh sách cuối cùng.
Tự làm thử
import numpy as np
def matrix_master(lst1, lst2, lst3):
# complete
Tất cả bài học trong Nền tảng NumPy
Tự luyện tập: Trình biên dịch Python online