File trong Python Các tệp được đặt tên các vị trí trên đĩa để lưu trữ thông tin liên quan. Chúng được sử dụng để lưu trữ vĩnh viễn dữ liệu trong bộ nhớ (ví dụ: đĩa cứng). Khi ta muốn đọc hoặc ghi vào một tập tin, trước tiên ta cần mở nó. Sau khi hoàn tất, tập tin cần được đóng lại để các tài nguyên gắn với tệp được giải phóng. Do đó, trong Python, các thao tác trên tệp diễn ra theo thứ tự sau: Mở tệp tin Đọc hoặc ghi (thực hiện thao tác) Đóng tệp
ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC BÀI MA TRẬN VÀ VECTOR Định nghĩa ma trận vector Ma trận: mảng chiều Trong Python mảng chiều xem List List Ví dụ: A=[ [1,2,3], [4,5,6], [7,8,9] ] Kích thước: Kích thước ma trận = số hàng * số cột Ví dụ: Ma trận B có hàng cột, ta gọi ma trận x Ta hiểu ma trận sheet với số hàng số cột định excel Vector: ma trận với cột nhiều hàng (n * 1) Kích thước: (cịn gọi chiều vector – vector dimension) số hàng vector Ví dụ: Vector có hàng vector chiều Vector tương tự cột excel với số hàng định Khởi tạo ma trận vector với NumPy 2.1 Khởi tạo ma trận Ta khởi tạo ma trận với NumPy np.array: np.array(object, dtype=None, ndmin=0) Trong đó: Object: mảng chiều, ta sử dụng list list dtype: kiểu liệu phần tử ma trận ndmin: số chiều tối thiểu return object, nên đặt = để tiện cho việc indexing ma trận cho Machine Learning 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 ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGÔN NGỮ LẬP TRÌNH KHOA HỌC Ma trận tương tự bảng sau: Khởi tạo vector 2.2 Ta khởi tạo vector ma trận có cột (mảng chiều) Ta xem List import numpy as np #import numpy and uses shorter keyword _a = [ 1, 2, 3, ] #array-like object a = np.array(_a) #create a 1-dimension array (vector) from _a print(‘Vector chiều:’, a) #print vector a Ví dụ: Truy cập đến ma trận vector Ta truy cập vào ma trận vector theo cấu trúc: Matrix_name[row_index, column_index] Trong đó: Row_index, column_index kí tự ‘:’ với ý nghĩa lấy tồn phần tử theo hàng/ cột Ví dụ: import numpy as np #import numpy and uses shorter keyword _a = [ [ 1, 2, ], [ 4, 5, ] ] #array-like object a = np.array(_a) #create a 2-dimension array (matrix) from _a ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGÔN NGỮ LẬP TRÌNH KHOA HỌC 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 vector 4.1 Cộng trừ với ma trận Các phép toán cộng trừ với ma trận phép toán “element-wise”, nghĩa phép toán với phần tử tương ứng Tương tự với trừ: Lưu ý: Để cộng trừ ma trận, kích thước hai phải giống Ví dụ : 4.2 Nhân chia ma trận với số Để nhân chia ma trận với số, ta cần nhân/chia phần tử ma trận với số Tương tự với chia: ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGÔN NGỮ LẬP TRÌNH KHOA HỌC Ví dụ: 4.3 Nhân ma trận với vector Khi nhân ma trận với vector, ta lấy phần tử cột số vector nhân với hàng ma trận để tích, sau lấy tổng tích cho vào hàng kết Chúng ta hình dung sau: Kết phép tính ln vector Số cột ma trận phải với số hàng vector Một ma trận m * n nhân với vector n * có tích vector m * Phân tích: Đầu tiên, ta xoay ngang vector lại thành Sau nhân dòng ma trận với Cuối lấy tổng hàng: : ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC Phép nhân ma trận – vector NumPy: Trong NumPy, để nhân ma trận với vector trên, ta dùng: Matrix_name.dot(vector) Từ phiên 3.5 trở lên Python hỗ trợ toán tử @: Matrix @ vector Ví dụ: Thực bước: Đầu tiên xoay ngang b: Nhân dòng a với b: Kết phép nhân tổng dòng ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC 4.4 Nhân ma trận với ma trận Chúng ta nhân ma trận cách tách ma trận thành nhiều vector nhân, sau ghép kết lại Để nhân ma trận, số cột ma trận phải số hàng ma trận Một ma trận m * n nhân với ma trận n * o cho kết ma trận m * o Phân tích: Đầu tiên tách ma trân thứ thành vector nhỏ: Nhân ma trận đầu với vector Kết vector có kích thước: thành : Cuối cùng, ghép vector lại với nhau: Phép nhân ma trận – ma trận với NumPy: Cũng nhân ma trận với vector, NumPy ta dùng: Matrix1.dot(matrix2) Hoặc Matrix1 @ matrix2 Ví dụ: ; ; ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC Thực bước: Đầu tiên tách ma trân thứ thành vector nhỏ: Nhân ma trận đầu với vector Kết vector có kích thước: thành : và ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC Cuối cùng, ghép vector lại với nhau: Tính chất phép nhân ma trận: Phép nhân ma trận khơng có tính chất giao hốn Phép nhân ma trận có tính chất kết hợp Identity matrix (ma trận đơn vị): 4.5 Identity matrix ma trận mà nhân với ma trận khác kích thước, ma trận khơng đổi Phép nhân với identity matrix có tính chất giao hốn Chúng ta xem identity matrix “số 1” ma trận Cấu trúc identity matrix ma trận có số đường chéo Ví dụ: Ta tạo identity matrix NumPy hàm eye: np.eye(x) Với x kích thước identity matrix Ví dụ: ĐỀ CƯƠNG BÀI GIẢNG 4.6 IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC Phép nhân “element-wise” với ma trận Đối với phép nhân element-wise, kết ma trận với phần tử tích phần tử tích phần tử tương ứng ma trận Với NumPy, ta thực phép nhân element-wise tốn tử * Ví dụ: 4.7 Tốn tử logic với ma trận Ta hồn tồn thực tốn tử logic với ma trận Kết trả ghi vào ma trận với kích thước tương đương Ví dụ: 4.8 Inverse matrix (ma trận khả nghịch) Inverse matrix kí hiệu bằng: A-1 Tích ma trận với ma trận đảo Identity matrix Tương tự số tự nhiên: * 2-1 = ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGÔN NGỮ LẬP TRÌNH KHOA HỌC Với NumPy function dùng để invert matrix là: np.linalg.pinv(matrix) Ví dụ: Lưu ý: Identity matrix hiển thị giá trị nhỏ thay cho số 0, ta làm trịn để có identity matrix xác Một số ma trận invert 4.9 Transpose matrix (ma trận chuyển vị) Transpose matrix kí hiệu là: AT Transpose matrix ma trận đảo hàng cột so với ma trận gốc Với NumPy ta sử dụng function np.transpose() để transpose matrix Ví dụ: ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC Hàm size với ma trận 4.9 Chúng ta sử dụng hàm size để lấy kích thước ma trận: np.size(matrix, axis) Trong đó: matrix: ma trận cần tìm kích thước axis: chiều, trả số hàng, trả số cột, mặc định trả số phần tử Ví dụ: 4.10 Hàm sum max/min với ma trận Chúng ta sử dụng hàm sum để lấy tổng phần tử, max để lấy phần tử lớn nhất, để lấy phần tử nhỏ Cấu trúc: np.sum(matrix,axis) np.max(matrix,axis) np.min(matrix,axis) Trong matrix: ma trận cần tìm kích thước axis: chiều, tính theo cột, tính theo hàng, mặc định tính ma trận Ví dụ: ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC 4.11 Lấy liệu cho mảng/vector từ file sử dụng pandas Pandas: Pandas thư viện mã nguồn mở xây dựng dựa NumPy, sử dụng thao tác phân tích liệu, thiết kế phép bạn làm việc với liệu gắn nhãn quan hệ theo cách trực quan Một số đặc tính pandas: - Có thể xử lý tập liệu khác định dạng: chuỗi thời gian, bảng không đồng nhất, ma trận liệu Khả import liệu từ nhiều nguồn khác CSV, DB/SQL Có thể xử lý vơ số phép tốn cho tập liệu: subsetting, slicing, filtering, merging, groupBy, re-ordering, and re-shaping, Xử lý liệu mát theo ý người dùng mong muốn: bỏ qua chuyển sang Xử lý, phân tích liệu tốt mơ hình hố thống kê Tích hợp tốt với thư viện khác python Cung cấp hiệu suất tốt Để cài đặt pandas bạn có Anaconda cần gõ conda install pandas sử dụng tools pip pip install pandas Sau cài đặt xong, Python, cần khai báo import pandas để bắt đầu sử dụng hàm pandas Vì pandas thư viện sử dụng thường xuyên nên thường khai báo gọn lại thành pd import pandas as pd pd thay từ khác, nhiên ta nên đặt pd tài liệu hướng dẫn ngầm quy ước Pandas có ba cấu trúc liệu xây dựng dựa thư viện Numpy nên chúng hoạt động nhanh hiệu quả: Series, DataFrame, Panel Trong Panel mảng chiều Panel khơng sử dụng rãi như Series hay DataFrame khơng dễ hiển thị hay trừu tượng hố mảng chiều hai chiều Phần sau giới thiệu cách sử ĐỀ CƯƠNG BÀI GIẢNG IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC dụng DataFrame để đọc liệu từ file csv, từ đưa liệu cho mảng/vector từ file csv Cách lấy liệu vào mảng/vector: Bước 1: Đọc liệu từ file csv Bước 2: Lấy liệu vào ma trận/vector