Đầu vào
Trong bài trước, Kteam đã GIỚI THIỆU MÁY HỌC VÀ CÀI ĐẶT NUMPY , giúp các bạn một phần hiểu được bản chất của Machine Learning
Ở bài này chúng ta sẽ cùng nhau tìm hiểu về Ma trận và vector với NumPy. Với bài viết này, Kteam sẽ giới thiệu đến các bạn một nội dung khá “toán học”, vì thế nếu thấy mệt, hoa mắt, chóng mặt, đất trời quay cuồng thì hãy nghỉ ngơi một lúc 😊
Lưu ý. Một số nội dung được trình bày trong video vẫn có thể không hoàn toàn chính xác. Vì vậy, sau khi tham khảo ý kiến đóng góp từ cộng đồng , Kteam đã có hiệu chỉ học tài liệu và cách diễn đạt ý nghĩa trong bài viết để nội dung có thể tìm hiểu kỹ hơn so với các tài liệu toán học.
Nội dung
Để theo dõi bài viết này tốt nhất bạn cần có kiến thức về
Trong bài này chúng ta sẽ cùng tìm hiểu về
- Định nghĩa ma trận và vector
- Cách khởi tạo ma trận và vector
- Các toán tử với ma trận
- Xác định ma trận và ma trận chuyển vị
- Ý nghĩa của ma trận và vector trong Machine Learning
Ma trận [ma trận] với NumPy
định nghĩa
Ma trận là một mảng 2 chiều. Trong Python mảng 2 chiều có thể xem là một Danh sách của Danh sách
Size
Kích thước của 1 ma trận = số hàng * số cột
Ví dụ
Ma trận B có 4 hàng và 3 cột. ma trận 4 x 3
Bạn cũng có thể hiểu ma trận là một sheet với số hàng và số cột nhất định trong excel
Vector with NumPy
định nghĩa
Vector is ma trận with 1 column and many rows [n * 1]
Size
Kích thước của vector [còn được gọi là vector – vector dimensions] is number of vector
Ví dụ
- Vectơ có 4 hàng là vectơ 4 chiều
- Các vector tương tự như 1 cột trong excel với số hàng nhất định
Khởi tạo ma trận và vector với NumPy
Restart ma trận
Ta có thể khởi động ma trận với NumPy bằng np. mảng
np. mảng [đối tượng, dtype=Không, ndmin=0]
in which
- Mục tiêu. an array 2 dimensions, ta could used a list of list
- gõ. data type of Elemental section in ma trận
- ndmin. số chiều tối thiểu khi trả về đối tượng, nên đặt = 2 để thuận tiện cho việc lập chỉ mục ma trận cho Machine Learning
Lưu ý. ngoại trừ đối tượng, các tham số khác khi truyền vào phải có key_arg
Ví dụ
import numpy as np #import numpy and uses shorter keyword
_A = [ [1, 2, 3], [4, 5, 6] ] #array-like object
A = np.array[_A] #create a 2-dimension array [matrix] from _A
print[A] #print matrix A
Trận đấu này cũng tương tự như bảng sau
Khởi tạo vector
Khởi tạo vector như ma trận nhưng chỉ có 1 cột [mảng 1 chiều]. Ta có thể xem đây là 1 Danh sách
import numpy as np #import numpy and uses shorter keyword
_a = [ 1, 2, 3, 4 ] #array-like object
a = np.array[_a] #create a 1-dimension array [vector] from _a
print[‘Vector 4 chiều:’, a] #print vector a
Ví dụ
Lập chỉ mục ma trận và vector
Ta can indexing ma trận và vector theo cấu trúc
Matrix_name[row_index, column_index]
in which
- Row_index, column_index có thể là ký tự ‘. ’ với ý nghĩa là lấy toàn bộ các phần tử theo hàng/ cột
Ví dụ
import numpy as np #import numpy and uses shorter keyword
_a = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] #array-like object
a = np.array[_a] #create a 2-dimension array [matrix] from _a
print[‘a[0, 1]:’, a[0, 1]] #print a[0, 1] element
print[‘a[:, 0]:’, a[:, 0]] #print a[:, 0] elements
print[‘a[1, :]:’, a[1, :]] #print a[1, :] elements
Các toán tử với ma trận và vector
Cộng và trừ với ma trận
Phép toán cộng và trừ với ma trận là phép toán “element-wise”, nghĩa là phép toán với từng phần tử tương ứng
Tương tự với trừ
Lưu ý. Để cộng và trừ 2 ma trận, kích thước của cả hai phải giống nhau
Ví dụ
import numpy as np
_a = [ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
_b = [ [ 2, 3, 5], [7, 9, 21] ]
a = np.array[_a] #create 2 * 3 matrix: a
b = np.array[_b] #create 2 * 3 matrix: b
print[‘a + b:’, a + b] #print out a + b
print[‘a – b:’, a – b] #print out a - b
Nhân và chia ma trận với số
Để nhân và chia ma trận với số, ta chỉ cần nhân/chia từng phần tử của ma trận với số đó
Tương tự với chia
Ví dụ
import numpy as np
_a = [ [ 3, 2, 1 ], [ 2, 4, 6 ] ]
a = np.array[_a]
print[‘a / 2:’, a / 2] #print out a / 2
print[‘a * 2:’, a * 2] #print out a * 2
Nhân ma trận với vector
Khi nhân ma trận với vector, ta lấy các phần tử trong cột số của vector nhân lần lượt với các hàng của ma trận để lấy các tích, sau đó lấy tổng các tích rồi cho vào từng hàng của kết quả. Chúng ta có thể cấu hình dung lượng như sau
Kết quả của phép tính luôn là một vector. Number of the column of the ma trận phải bằng với số hàng của véc-tơ
Một ma trận m * n nhân với một vector n * 1 sẽ có tích là một vector m * 1
Partition
Đầu tiên, véc tơ xoay ngang lại thành
Sau đó nhân lần lượt từng dòng của ma trận với .
Cuối cùng lấy tổng của từng hàng.
Nhân ma trận – vector trong NumPy
Trong NumPy, to the ma trận với vector như trên, ta có thể sử dụng
tên_ma trận. dấu chấm [vectơ]
Word version 3. 5 return to Python has support @ @
Ma trận @ véc tơ
Để hiểu rõ hơn, chúng ta cùng đi đến Ví dụ
import numpy as np
_a = [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
a = np.array[_a] #Create a 3 * 2 matrix
_b = [ 1, 2 ]
b = np.array[_b] #Create a 2-dimension vector
print[a]
print[b]
print[‘a * b:’, a.dot[b]] #print out a * b using narray.dot[]
print[‘a * b:’, a @ b] #print out a * b using @ operation
Thực hiện từng bước
Đầu tiên xoay ngang b
Nhân từng dòng a với b.
Nhân quả cho phép là tổng từng dòng
Nhân ma trận với ma trận
Chúng ta nhân 2 ma trận bằng cách tách 1 ma trận ra thành nhiều vector rồi nhân, sau đó ghép các kết quả lại
Để nhân 2 ma trận, số cột của ma trận 1 phải bằng số hàng ở ma trận 2
Một ma trận m*n nhân với một ma trận n*o sẽ cho kết quả là một ma trận m*o
Partition
Đầu tiên tách ma trân thứ 2 thành 2 vector nhỏ. thành và
Nhân ma trận đầu tiên như 2 vector và . ; ;
Kết quả là 2 vector có cùng kích thước. và
Cuối cùng, ghép 2 vector lại với nhau.
Nhân ma trận – ma trận với NumPy
Cũng giống như nhân ma trận với vector, trong NumPy ta có thể sử dụng
Ma trận1. chấm[ma trận2]
hoặc
Ma trận1 @ ma trận2
Ví dụ
import numpy as np
_a = [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
a = np.array[_a] #Create a 3 * 2 matrix
_b = [ [1, 3], [2, 1] ]
b = np.array[_b] #Create a 2 * 2 matrix
print[a]
print[b]
print[‘a * b:’, a.dot[b]] #print out a * b using narray.dot[]
print[‘a * b:’, a @ b] #print out a * b using @ operation
Thực hiện từng bước
Đầu tiên tách ma trân thứ 2 thành 2 vector nhỏ. thành và
Nhân ma trận đầu tiên như 2 vector và .
Kết quả là 2 vector có cùng kích thước. và
Cuối cùng, ghép 2 vector lại với nhau.
Tính chất của phép nhân ma trận
Nhân ma trận không có tính chất giao hoán
Nhân ma trận bóng có tính chất kết hợp
Ma trận danh tính [ma trận đơn vị]
Ma trận danh tính là ma trận mà khi nhân với bất kỳ ma trận khác cùng kích thước, ma trận đó sẽ không thay đổi. Nhân biến với ma trận nhận dạng có tính chất giao hoán. Chúng ta có thể xem ma trận danh tính là “số 1” của ma trận
Constructor of Identity matrix is 1 ma trận có số 1 trên đường chéo
Ví dụ
Ta có thể tạo một ma trận đồng nhất trong NumPy bằng mắt hàm
np. mắt[x]
With x is size of Identity matrix
Ví dụ
import numpy as np
a = np.eye[5]
print[a]
Nhân "element-wise" với ma trận
Đối với phép nhân phần tử khôn ngoan, kết quả sẽ là một trận đấu với các phần tử là tích của các phần tử là tích của 2 phần tử tương ứng trong 2 trận
Với NumPy, ta có thể thực hiện cho phép nhân phần tử khôn ngoan bằng toán tử *
Ví dụ
________số 8_______Toán tử logic với ma trận
Ta hoàn toàn có thể thực hiện các logic toán tử với ma trận. Kết quả trả về sẽ được ghi vào một trận đấu với kích thước tương ứng
Ví dụ
import numpy as np
a = np.eye[5]
print[a == 1]
Ma trận nghịch đảo [ma trận khả dĩ]
Ma trận nghịch đảo được ký hiệu bằng. A-1
Tích hợp của ma trận với ma trận đảo của nó sẽ là một ma trận nhận dạng
Tương tự như trong số tự nhiên. 2 * 2-1 = 1
With NumPy function used to invert matrix is
np. linalg. pinv [ma trận]
Ví dụ
import numpy as np #import numpy and uses shorter keyword
_a = [ 1, 2, 3, 4 ] #array-like object
a = np.array[_a] #create a 1-dimension array [vector] from _a
print[‘Vector 4 chiều:’, a] #print vector a
0Lưu ý. Ma trận danh tính này hiển thị giá trị rất nhỏ thay cho số 0, ta có thể làm tròn để có ma trận danh tính chính xác. Một số trận đấu không thể đảo ngược
Transpose matrix [ma trận chuyển vị]
Transpose matrix was sign is. TẠI
Transpose matrix is ma trận đảo hàng và cột so với ma trận gốc
Với NumPy ta sử dụng hàm np. transpose[] to transpose matrix
Ví dụ
import numpy as np #import numpy and uses shorter keyword
_a = [ 1, 2, 3, 4 ] #array-like object
a = np.array[_a] #create a 1-dimension array [vector] from _a
print[‘Vector 4 chiều:’, a] #print vector a
1Hàm kích thước với ma trận
Chúng ta có thể sử dụng hàm size để lấy kích thước của ma trận
np. kích thước [ma trận, trục]
in which
- ma trận. ma trận to find size
- trục. chiều, nếu là 0 sẽ trả về số hàng, 1 trả về cột số, mặc định trả về phần tử
Ví dụ
import numpy as np #import numpy and uses shorter keyword
_a = [ 1, 2, 3, 4 ] #array-like object
a = np.array[_a] #create a 1-dimension array [vector] from _a
print[‘Vector 4 chiều:’, a] #print vector a
2Ham sum and max/min with ma trận
Chúng ta có thể sử dụng hàm sum để lấy tổng các phần tử, max để lấy phần tử lớn nhất, min để lấy phần tử nhỏ nhất
Constructor
np. tổng [ma trận, trục]
np. tối đa [ma trận, trục]
np. tối thiểu [ma trận, trục]
in which
- ma trận. ma trận to find size
- trục. chiều, nếu là 0 sẽ tính theo cột, 1 sẽ tính theo hàng, mặc định sẽ tính trên cả trận
Ví dụ
import numpy as np #import numpy and uses shorter keyword
_a = [ 1, 2, 3, 4 ] #array-like object
a = np.array[_a] #create a 1-dimension array [vector] from _a
print[‘Vector 4 chiều:’, a] #print vector a
3Ý nghĩa của ma trận trong Machine Learning
Đối với Machine Learning, chúng ta phải lý giải những dữ liệu đó với số lượng rất lớn, chúng ta không thể cứ sử dụng vòng lặp duyệt qua từng dữ liệu được vì sẽ thiếu khả năng xử lý tốc độ tối đa. Vì thế chúng ta cần một công cụ mạnh mẽ hơn để xử lý những dữ liệu số lượng lớn, đó là ma trận. Với các phép tính với ma trận, chỉ cần 1 dòng lệnh ta có thể cùng lúc thực hiện phép tính trên nhiều dữ liệu
Kết luận
Bài viết này đã hướng dẫn các bạn về ma trận và vector với NumPy
Ở bài sau, Kteam sẽ giới thiệu về THUẬT TOÁN LINEAR REGRESSION VÀ HÀM HYPOTHESIS
Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc đóng góp ý kiến của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không sợ khó”
Thảo luận
Nếu bạn gặp bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam. com to get the support from the community