Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 170 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
170
Dung lượng
5,62 MB
Nội dung
LOGO LẬPTRÌNH CHO KHOA HỌC DỮ LIỆU Bài Giới thiệu môn học Nội dung Giới thiệu môn học Mục tiêu môn học Phần mềm sử dụng Yêu cầu môn học Thông tin môn học ▪ Tên mơn: Lậptrình cho Khoa học Dữ liệu (Programming for Data Science) ▪ Sốtín chỉ: (24 tiết lý thuyết + 21 tiết tập) ▪ Nội dung chính: ▪ Tổng quan khoa học liệu ▪ Lập trình với python ▪ Các thao tác liệu python ▪ Trực quan hóa liệu ▪ Các toán khoa học liệu ▪ Giảng viên: TS Trần MạnhTuấn, khoa CNTT ▪ Email: tmtuan@tlu.edu.vn ▪ Điện thoại: 0983668841 Thông tin môn học ▪ Tài liệu tham khảo: ▪ https://sites.google.com/site/tranmanhtuantlu/cac-monday/ltkhdl?pli=1 ▪ Allen Downey, Think Python: How to think like a computer scientist, O’Reilly Media Inc, 2012 ▪ Mark Lutz, Learning Python 5th Edition, O'Reilly Media Inc, 2013 ▪ Wes McKinny, Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, O'Reilly Media Inc, 2012 ▪ Eric Matthes, Python Crash Course, A Hands-On, Project-Based Introduction to Programming, No Starch press, 2016 ▪ Đánh giá: ĐQTx 40% + ĐTCKx60% ▪ Hình thức đánh giá cuối kỳ: Thực hành trênphòng máy Mục tiêu mơn học ▪ Để có kiến thức khoa học liệu ▪ Để có kĩ viết chương trình phục vụ cho cácbài toan thuộc ngành khoa học liệu ▪ Để có hiểu biết cơng việc người làm khoa học liệu toán liên quan ▪ Để có hiểu biết cách ứng dụng khoa học liệu vào vấn đề thực tế ▪ Có thêm lựa chọn cho đề tài làm tốt nghiệp ▪ Có điểm mơn học ratrường Phần mềm môn học Yêu cầu môn học ▪ Đã biết sử dụng tạm ổn ngơn ngữ lập trình (C/C++, C#, Java,…) – học nhanh phần ngôn ngữ python ▪ Cấu trúc liệu: mảng, danh sách, cây,…– đặc biệt mảng nhiều chiều phép xử lý ▪ Hiểu cách làm việc hệ thống file, đọc ghi dữliệu dạng văn từ file – hầu hết liệu môn học ngành học dạng text ▪ Có kiến thức định dạng liệu thường dùng sống (văn bản, ảnh, âm thanh, phim, ) Yêu cầu môn học ▪ Mỗisinhviêntạo1 tàikhoảntrênPiazza, đắngkývàocáclớpcụthể nhưsau: ▪ https://piazza.com/configure-classes/spring2019/cse (Lớp59 HT1) ▪ https://piazza.com/configure-classes/spring2019/cse587 (Lớp59TH3) ▪ Sinhviênlàmbàitậpsaumỗibuổihọclýthuyếtthầygiao ▪ Sinhviênthựchànhdựatrêncácbàitậpvềnhà KHínộpbàighirõ theocấusau: __ (vídụ: Tran ManhTuan_59HT1_3: sinhviênTrầnMạnhTuấn, lớphọc phần59HT1, nộpbàisố2) ▪ Bàitậpsẽcậpnhậttrênpiazza, sinhviênnộpbàitậptrênpiazza LOGO LOGO LẬPTRÌNH CHO KHOA HỌC DỮ LIỆU Bài Tổng quan khoa học liệu 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 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 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 ... LOGO LẬPTRÌNH CHO KHOA HỌC DỮ LIỆU Bài Tổng quan khoa học liệu Nội dung 2 Khoa học liệu Ứng dụng khoa học liệu Data scientist (nhà khoa học liệu) Các yếu tố phát triển khoa học liệu Khoa học liệu. .. máy Mục tiêu mơn học ▪ Để có kiến thức khoa học liệu ▪ Để có kĩ viết chương trình phục vụ cho cácbài toan thuộc ngành khoa học liệu ▪ Để có hiểu biết cơng việc người làm khoa học liệu toán liên...Nội dung Giới thiệu môn học Mục tiêu môn học Phần mềm sử dụng Yêu cầu môn học Thông tin môn học ▪ Tên môn: Lậptrình cho Khoa học Dữ liệu (Programming for Data Science) ▪ Sốtín