Tạo python ma trận nxn

Đầ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

Tạo python ma trận nxn

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

Tạo python ma trận nxn

Trận đấu này cũng tương tự như bảng sau

Tạo python ma trận nxn

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ụ

Tạo python ma trận nxn

Tạo python ma trận nxn


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

Tạo python ma trận nxn


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

Tạo python ma trận nxn

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

Tạo python ma trận nxn

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

Tạo python ma trận nxn

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

Tạo python ma trận nxn

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)

Tạo python ma trận nxn

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_______

Tạo python ma trận nxn

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)

Tạo python ma trận nxn


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
0

Tạo python ma trận nxn

Lư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
1

Tạo python ma trận nxn


Hà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
2

Tạo python ma trận nxn


Ham 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

Tạo python ma trận nxn


Ý 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