Hướng dẫn vector addition python - con trăn bổ sung véc tơ

Dẫn nhập

Trong bài trước, Kteam đã GIỚI THIỆU MACHINE LEARNING 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.GIỚI THIỆU MACHINE LEARNING 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 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 cảm thấy mệt mỏi, hoa mắt, chóng mặt, trời đất quay cuồng thì hãy nghĩ ngơi một lúc 😊Ma trận và vector với NumPy. Với bài 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 cảm thấy mệt mỏi, hoa mắt, chóng mặt, trời đất 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ể chưa hoàn toàn chính xác. Vì vậy, sau khi tham khảo góp ý từ cộng đồng , Kteam đã có hiệu chỉnh học  liệu và cách diễn đạt các định nghĩa trong bài viết để nội dung có thể đi sát hơn với các tài liệu toán học.  : Một số nội dung được trình bày trong video vẫn có thể chưa hoàn toàn chính xác. Vì vậy, sau khi tham khảo góp ý từ cộng đồng , Kteam đã có hiệu chỉnh học  liệu và cách diễn đạt các định nghĩa trong bài viết để nội dung có thể đi sát hơn với các tài liệu toán học.  


Nội dung

Để theo dõi bài này tốt nhất bạn cần có kiến thức về:

  • LẬP TRÌNH PYTHON CƠ BẢN
  • Xem qua bài GIỚI THIỆU MACHINE LEARNING VÀ CÀI ĐẶT NUMPY

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
  • Identify matrix và Transpose matrix
  • Ý nghĩa của ma trận và vector trong Machine Learning

Ma trận (matrix) 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 List của List. là một mảng 2 chiều. Trong Python mảng 2 chiều có thể xem là một List của List.

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

Kích thước

Kích thước của 1 ma trận = số hàng * số cột.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 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 List của List.là ma trận với 1 cột và nhiều hàng (n * 1)

Kích thước

Kích thước của 1 ma trận = số hàng * số cột.của vector (còn được gọi là chiều vector – vector dimension) là số hàng của vector.

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 với NumPy

Vector là ma trận với 1 cột và nhiều hàng (n * 1)

Kích thước của vector (còn được gọi là chiều vector – vector dimension) là số hàng của vector.np.array:

Vector có 4 hàng là vector 4 chiều.(object, dtype=None, ndmin=0)

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: một mảng 2 chiều, ta có thể sử dụng một list của list.
  • Khởi tạo ma trận: kiểu dữ liệu của các phần tử trong ma trận
  • Ta có thể khởi tạo ma trận với NumPy bằng np.array:: số chiều tối thiểu khi return object, nên đặt = 2 để tiện cho việc indexing ma trận cho Machine Learning.

np.array(object, dtype=None, ndmin=0) trừ object, các parameter 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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

Ma trận B có 4 hàng và 3 cột: ma trận 4 x 3

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

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 với NumPy

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ụ:

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

Hướng dẫn vector addition python - con trăn bổ sung véc tơ


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.indexing ma trận và vector theo cấu trúc:

Vector với NumPyrow_index, column_index]

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, column_index có thể là kí tự ‘:’ với ý nghĩa lấy toàn bộ những 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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ


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 với NumPyelement-wise”, nghĩa là phép toán với từng phần tử tương ứng.

Vector là ma trận với 1 cột và nhiều hàng (n * 1)

Kích thước của vector (còn được gọi là chiều vector – vector dimension) là số hàng của vector. Để cộng và trừ 2 ma trận, kích thước của cả hai phải giống nhau.

Vector có 4 hàng là vector 4 chiều.

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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

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

Khởi tạo ma trận

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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

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 với NumPy

Vector là ma trận với 1 cột và nhiều hàng (n * 1) m * n nhân với một vector n * 1sẽ có tích là một vector m * 1

Kích thước của vector (còn được gọi là chiều vector – vector dimension) là số hàng của vector.

Vector có 4 hàng là vector 4 chiều.  lại thành  

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

Khởi tạo ma trận

Ta có thể khởi tạo ma trận với NumPy bằng np.array:

   Matrix_name.dot(vector)Matrix_name.dot(vector)

np.array(object, dtype=None, ndmin=0) @:

Trong đó:Matrix @ vector

Object: một mảng 2 chiều, ta có thể sử dụng một list của list.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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

dtype: kiểu dữ liệu của các phần tử trong ma trận

ndmin: số chiều tối thiểu khi return object, nên đặt = 2 để tiện cho việc indexing ma trận cho Machine Learning.b:

Lưu ý: trừ object, các parameter khác khi truyền vào phải có key_arg.
Nhân từng dòng a với b

Ma trận này cũng tương tự như bảng sau:

Khởi tạo vector

Ta 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 List.

Indexing ma trận và vector

Ta có thể indexing ma trậnvà vector theo cấu trúc:

Matrix_name[row_index, column_index] 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

Kích thước của vector (còn được gọi là chiều vector – vector dimension) là số hàng của vector.

Vector có 4 hàng là vector 4 chiều.  thành     và  

Vector tương tự như 1 cột trong excel với số hàng nhất định. và  : ;   ;

Kết quả là 2 vector có cùng kích thước:  và  và 

Cuối cùng, ghép 2 vector lại với nhau: 

Phép nhân ma trận – ma trận với NumPy

Cũng như nhân ma trận với vector, trong NumPy ta có thể dùng:

  Matrix1.dot(matrix2)Matrix1.dot(matrix2)

Hoặc

Matrix1 @ matrix2 @ matrix2

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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

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à   thành   và 

Nhân ma trận đầu lần lượt với 2 vector  và :   và  

Kết quả là 2 vector có cùng kích thước:   và   và 

Cuối cùng, ghép 2 vector lại với nhau: 

Phép nhân ma trận – ma trận với NumPy

Cũng như nhân ma trận với vector, trong NumPy ta có thể dùng:không có tính chất giao hoán.

Hoặctính chất kết hợp.

Matrix1 @ matrix2

Ví dụ: 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 đổi. Phép nhân với identity matrix tính chất giao hoán. Chúng ta có thể xem identity matrix là “số 1” của ma trận.

Thực hiện từng bước:

Ví dụ:

Thực hiện từng bước:identity matrix trong NumPy bằng hàm eye:

np.eye(x)eye(x)

Đầu tiên tách ma trân thứ 2 thành 2 vector nhỏ:    thành   và x là kích thước của identity matrix.

Ví dụ:

import numpy as np
a = np.eye(5)
print(a)

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

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 lần lượt với 2 vector  và :   element-wise bằng toán tử *

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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

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à 

Ví dụ:

import numpy as np
a = np.eye(5)
print(a == 1)

Hướng dẫn vector addition python - con trăn bổ sung véc tơ


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à  được kí hiệu bằng: A-1

Nhân ma trận đầu lần lượt với 2 vector  và :  

Kết quả là 2 vector có cùng kích thước:   và 

Tính chất của phép nhân ma trận

Phép nhân ma trận không có tính chất giao hoán.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
0

Hướng dẫn vector addition python - con trăn bổ sung véc tơ

Thực hiện từng bước: Identity matrix này hiển thị giá trị rất nhỏ thay cho số 0, ta có thể làm tròn để có identity matrix chính xác. Một số ma trận không thể invert.


Đầu tiên tách ma trân thứ 2 thành 2 vector nhỏ:    thành   và 

Nhân ma trận đầu lần lượt với 2 vector  và :  được kí hiệu là: AT

Kết quả là 2 vector có cùng kích thước:   và là ma trận đảo hàng và cột so với ma trận gốc.

Tính chất của phép nhân ma trận np.transpose() để 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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ


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 lần lượt với 2 vector  và :  matrix, axis)

Kết quả là 2 vector có cùng kích thước:   và 

  • Tính chất của phép nhân ma trận: ma trận cần tìm kích thước
  • Phép nhân ma trận không có tính chất giao hoán.: chiều, nếu là 0 sẽ trả về số hàng, 1 trả về số cột, mặc định trả về số 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

Hướng dẫn vector addition python - con trăn bổ sung véc tơ


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 lần lượt với 2 vector  và :  

np.sum(matrix,axis)matrix,axis)

np.max(matrix,axis)matrix,axis)

np.min(matrix,axis)matrix,axis)

Kết quả là 2 vector có cùng kích thước:   và 

  • Tính chất của phép nhân ma trận: ma trận cần tìm kích thước
  • Phép nhân ma trận không có tính chất giao hoán.: 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ả 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
3

Hướng dẫn vector addition python - con trăn bổ sung véc tơ


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 lần lượt với 2 vector  và :  

Kết quả là 2 vector có cùng kích thước:   và 

Tính chất của phép nhân ma trậnTHUẬT TOÁN LINEAR REGRESSION VÀ HÀM HYPOTHESIS

Phép nhân ma trận không có tính chất giao hoán.Luyện tập – Thử thách – Không ngại khó”.


Phép nhân ma trận có tính chất kết hợp.

Identity matrix (ma trận đơn vị)