Menu
CoddyTech

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:

12
34
56

Ma trận B:

78910
11121314

Kết quả:

1*7 + 2*111*8 + 2*121*9 + 2*131*10 + 2*14
3*7 + 4*113*8 + 4*123*9 + 4*133*10 + 4*14
5*7 + 6*115*8 + 6*125*9 + 6*135*10 + 6*14

Sau khi tính toán:

29323538
65727986
101112123134

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]])
quiz iconTự kiểm tra

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 độ.

quiz iconTự kiểm tra

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 độ.

quiz iconTự kiểm tra

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 độ.

challenge icon

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