Bài giảng Lập trình cho khoa học dữ liệu - Bài 6: Xử lý dữ liệu trong Python cung cấp cho người học những kiến thức như: Dictionary (từ điển); Set (tập hợp); Module và Package. Mời các bạn cùng tham khảo!
LOGO LẬPTRÌNH CHO KHOA HỌC DỮ LIỆU Bài Xử lý liệu Python Nội dung Dictionary (từ điển) Set (tập hợp) Module vàPackage Dictionary (từ điển) ▪ Từ điển danh sách từ khóa (key) giá trị (value): ▪ Mỗi cặp key-value xem phần tử ▪ Xác định từ điển cặp { } ▪ ucầu key khơng trùng (chỉ có giá trị nhất) ▪ Key phải kiểu liệu không thay đổi (immutable) chuỗi, số tuple ▪ Key value phân biệt riêng rẽ dấu hai chấm (:) ▪ Cácphầntửphânbiệtnhaubởimộtdấuphảy(,) Dictionary (từ điển) ▪ Cú pháp khai báo từ điển • ={Key:values} • VD1: dic1={1:'one',2:'two',3:'three’} • VD2: dic2={} # Khai báo từ điển rỗng • VD3: dic3={[1,2,3]:"abc"} # kiểu liệu thay đổi ▪ Thêm phần tử vào từ điển • [Key]=values • VD4: dic1[4]= ‘four ’ lỗi Key [key] [key] Dictionary (từ điển) ▪ Truy cập giá trị từ điển • [Key] • VD1: print(dic1[1]) • VD2: dic1[2]=“abc” # kết ‘one’ # Kết từ điển dic1={1:'one',2:’abc',3:'three’} ▪ Nếu cố gắng truy cập vào phần tử từ điển báo lỗi • VD3: print(dic1[4]) #sẽ báo lỗi Dictionary (từ điển) ▪ Một số phép toán / phương thức thường dùng len(d): trả độ dài từ điển(số cặp key-value) del d[k]: xóa key k (và value tương ứng) cmd (d1,d2): So sánh phần tử hai từ điển d k in d: trả True có key k từ điển d k not in d: trả True khơng có key k từ điển pop(k): trả value tương ứng với key k xóa cặp ▪ popitem(): trả (và xóa) cặp (key, value) tùyý ▪ ▪ ▪ ▪ ▪ ▪ Dictionary (từ điển) ▪ Một số phép toán / phương thức thường dùng ▪ get(k): lấy value tương ứng với keyk • Khác phép [] chỗ get trả None k làkey ▪ update(w): ghép nội dung từ từ điển w vào từ điển (nếu key trùng lấy value từ w) ▪ items(): trả list cặp (key,value) ▪ keys(): trả key từ điển ▪ values(): trả value từ điển ▪ zip(l1,l2): ghép danh sách thành từ điển Dictionary (từ điển) ▪ VD1: Viết chương trình tạo từ điển với key số từ nhiên từ đến 20 cịn values bình phương key tương ứng ▪ VD2: Viết chương trình nhập từ điển từ bàn phím ▪ VD3: Nhập string S, tạo từ điển D key chữ xuất S value tương ứng số lần xuất chữ S Set (tập hợp) ▪ Set = tập hợp đối tượng (không trùng nhau) ▪ Khai báo trực tiếp cách liệt kê phần tử đặt cặp ngoặc nhọn ({}), ngăn cách bởiphẩy >>> basket = { ' a p p l e ' , ' o r a n g e ' , ' a p p l e ' , ' p e a r ' } >>> p r i n t ( b a s k e t ) {'orange', 'pear', 'apple'} # xóa trùng ▪ Tạo set bằngconstructor s1 s2 s3 s4 = = = = s e t ( [ , , , 4] ) set((1, 1, 1)) s1 – s2 set(range(1,100)) # # # # { , 2, 3, 4} {1} { , 3, 4} { , 2, 3,…, , 99} Set (tập hợp) Khởi tạo ▪ Tạo set setcomprehension # a = {'r', 'd'} a = { x f o r x i n 'abracadabra' i f x not i n ' a b c ' } ▪ Set khơng thể chứa đối tượng mutable (có thể bị thay đổi), set lại thay đổi a.add("abc") # { ( , ) , "abc", ( , 3)} ▪ Frozenset giống set, bị thayđổi b = frozenset ( ( ( , ) , ( , ) ) ) b.add("abc") 10 # { ( , ) , ( , 3)} # lỗi Set (tập hợp) Phép toán a = set('abracadabra') # { ' d' , ' r ' , ' c' , ' b' , ' a' } b = set('alacazam') # { ' z' , ' c' , ' m' , ' l ' , ' a' } # Phép Hiệu: thuộc a không thuộc b pr i nt ( a – b) # { ' r ' , ' d' , ' b' } # Phép Hợp: thuộc a b # { ' a ' , ' c ' , ' r ' , ' d ' , ' b ' , 'm', ' z ' , ' l ' } print(a | b) # Phép Giao: thuộc a b print(a & b) # {'a', 'c'} # Phép Xor : t huộc a, b # { ' r ' , ' d ' , ' b ' , 'm', ' z ' , ' l ' } print(a ^ b) 11 Set (tập hợp) Phương thức ▪ Một số phương thức thường hay sửdụng ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ 12 add(e): thêm e vào tập hợp clear(): xóa phần tử tậphợp copy(): tạo tập hợp difference(x): tương đương với phép trừ đix difference_update(x): loại bỏ phần tửtrong x khỏi tập discard(e): bỏ e khỏi tập remove(e): bỏ e khỏi tập, báo lỗi khơng tìm thấy e union(x): tương đương với phép hợp vớix intersection(x): tương đương với phép giao vớix Set (tập hợp) Phương thức ▪ Một số phương thức thường hay sửdụng ▪ isdisjoint(x): trả True tập khơng có phầnchung với x ▪ issubset(x): trả True tập x,tương đương với phép so sánh =x ▪ pop(): lấy phần tử khỏi tập (không biết trước) ▪ symmetric_difference(x): tương đương với phép ^x 13 Module Package Module ▪ Module sử dụng để tổ chức Python code cách logic để giúp bạn dễ dàng hiểu sử dụng code ▪ Nếu nội dung sách không lập mục phân loại thành chương riêng, sách trở nên nhàm chán gây khó khăn cho độc giả đọc hiểu Tương tự, Module Python file mà có code tương tự nhau, hay có liên quan với Chúng có lợi sau: ▪ Khả tái sử dụng: Module sử dụng phần Python code khác, làm tăng tính tái sử dụng code ▪ Khả phân loại: Các kiểu thuộc tính tương tự đặt Module 14 Module Package Module ▪ Một file mã nguồn python xem làmột module ▪ Có phần mở rộng.py ▪ Mọi hàm, biến, kiểu file thành phần module ▪ Sửdụng module: ▪ Khai báo import module đó: import ▪ Có thể khai báo import lúc nhiều module cách nhaubởi dấu phẩy ▪ Nếu muốn sử dụng hàm, biến module cầnviết tường minh tên module ▪ Hoặc import riêng mộthàm nhiều hàm, cú pháp: from import f u c , fuc2,…, fucN 15 Module Package Module ❑ Các Module dựng sẵn: • math, random, threading, collections, os, mailbox, string, time • Mỗi Module định nghĩa sẵn nhiều hàm để sử dụng thực tính khác 16 Module Package Package ▪ Package tập hợp Module, sub-package, … tương tự Đó cấu trúc có thứ bậc thư mục file ▪ Build package Python: Để tạo package python người cần tạo thư mục, với tên thư mục tên package thư mục định phải có file có tên init .py File init .py giống constructor, gọi import package 17 Module Package Package 18 Module Package Package ▪ Package = Thư mục module (lưu trữ vật lý) import numpy A = ar r ay( [ , 2, 3] ) # A = numpy.array([1, , ] ) import numpy as np B = np.array([1, 2, ] ) from numpy import array C= a r r a y ( [ , , ] ) lỗ i # ok # ok # ok ▪ Module Package giúp quản lý tốt mãnguồn ▪ Gom, nhóm hàm, biến, lớp xử lý chủ đề, giúp phân cấp sử dụng dễ dàng 19 LOGO ... dụng để tổ chức Python code cách logic để giúp bạn dễ dàng hiểu sử dụng code ▪ Nếu nội dung sách không lập mục phân loại thành chương riêng, sách trở nên nhàm chán gây khó khăn cho độc giả đọc... Module Package Package ▪ Package tập hợp Module, sub-package, … tương tự Đó cấu trúc có thứ bậc thư mục file ▪ Build package Python: Để tạo package python người cần tạo thư mục, với tên thư mục tên... array C= a r r a y ( [ , , ] ) lỗ i # ok # ok # ok ▪ Module Package giúp quản lý tốt mãnguồn ▪ Gom, nhóm hàm, biến, lớp xử lý chủ đề, giúp phân cấp sử dụng dễ dàng 19 LOGO