-
Tuần 1 - Ngày 10 tháng 7 năm 2019
- Giới thiệu về khóa học
- Hướng dẫn viết chương trình Python trên web
- Hướng dẫn sử dụng PyCharm
- Tổng quan về Python
- Kỹ năng sử dụng Google search
- Viết tài liệu kỹ thuật dùng Markdown
- Hàm xây dựng sẵn trong Python – math và random
- Cài đặt các công thức toán cơ bản
- Xây dựng hàm trong python
- Điều kiện if-else
- Những lỗi thường gặp trong Python
- Reading assignment
-
Tuần 2 - Ngày 17 tháng 7 năm 2019
-
Tuần 3 - Ngày 24 tháng 7 năm 2019
-
Tuần 4 - Ngày 31 tháng 7 năm 2019
-
Tuần 5 - Ngày 7 tháng 8 năm 2019
-
Advanced Python
-
Tuần 6 - Ngày 14 tháng 8 năm 2019
-
Tuần 7 - Ngày 28 tháng 8 năm 2019
-
Tuần 8
-
Tuần 9
Xử lý data dùng numpy
Trong bài này, chúng ta sẽ làm quen với việc xử lý dữ liệu dùng numpy. Cụ thể, chúng ta sẽ dùng file dữ liệu Iris.csv
để minh họa các vấn đền trong xử lý dữ liệu. File Iris.csv
(phiên bản đơn giản) gồm 30 dòng và 5 cột. Hình sau thể hiện nội dụng file dữ liệu, trong đó dòng header và cột đầu tiên (id) được thêm vào hình để minh họa.
Các bạn download file dữ liệu ở link sau
https://www.dropbox.com/s/r0ea386427ty0hm/iris.csv?dl=0
Sau đây là các câu hỏi cho việc xử lý dữ liệu trên.
Câu 1: Đọc tập dữ liệu Iris dùng hàm np.genfromtxt()
với dtype='object'
. Dữ liệu trả về là một mảng 2 chiều, với các phần tử có kiểu là byte
.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html
Bài giải tham khảo
Câu 2: Đọc tập dữ liệu Iris dùng hàm np.genfromtxt()
với dtype=None
. Dữ liệu trả về là một mảng 1 chiều, với các phần tử có kiểu là tuple
. Trong mỗi tuple
, số có kiểu float và chuỗi có kiểu byte
.
Bài giải tham khảo
Câu 3: Tạo một mảng 2 chiểu gồm 4 cột dữ liệu đầu tiên.
Bài giải tham khảo
Câu 4: Tìm giá trị trung bình (mean), trung vị (median), độ lệch chuẩn (standard deviation) của cột sepal_length
của tập dữ liệu iris (cột thứ 1).
- Mean (trung bình) được tính bằng tổng của tất cả các giá trị trong mảng và chia cho kích thước mảng.
- Số trung vị (Median) là giá trị giữa trong một phân bố
- Độ lệch chuẩn (Standard deviation) : Độ lệch chuẩn mô tả sự phân tán của dữ liệu.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html
https://docs.scipy.org/doc/numpy/reference/generated/numpy.median.html
https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html
Bài giải tham khảo
Câu 5: Chuẩn hóa (normalize) cột sepallength
để giá trị nằm trong khoảng từ 0 đến 1.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.min.html
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.max.html
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ptp.html
Bài giải tham khảo
Câu 6: Tính softmax cho cột sepallength
.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html
Bài giải tham khảo
Câu 7: Đọc tập dữ liệu Iris dùng hàm np.genfromtxt()
với dtype='float'
. Dữ liệu trả về là một mảng 2 chiều, với các phần tử có kiểu là float
cho số và nan
(không xác định) cho chuỗi. Tìm vị trí có giá trị không xác định trong mảng numpy
Bài giải tham khảo
Câu 8: Đọc 4 cột dữ liệu đầu tiên, và lọc các dòng có petallength
(cột thứ 3) > 1.5 và sepallength
(cột thứ 1) < 5.0.
Bài giải tham khảo
Câu 9: Tìm mối tương quan giữa SepalLength
(cột thứ 1) và PetalLength
(cột thứ 3).
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html
Bài giải tham khảo
Câu 10: Tìm các giá trị duy nhất và số lượng các giá trị duy nhất trong cột species.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html
Bài giải tham khảo
Câu 11: Chuyển đổi cột 3 petallength
thành mảng như sau
Nhỏ hơn 3 –> ‘small’
Từ 3->5 –> ‘medium’
Lớn hơn 5 –> ‘large’
Bài giải tham khảo
Câu 12: Tạo một cột mới, trong đó giá trị mỗi phần tử là (petallength + sepal_length) / 2
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.hstack.html
Bài giải tham khảo
Câu 13: Lấy mẫu ngẫu nhiên cột species của mảng iris sao cho số lượng chọn setose
gấp đôi số lượng của versicolor
và virginica
.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.searchsorted.html
Bài giải tham khảo
Câu 14: Tìm giá trị lớn thứ hai của petallength
trong nhóm setosa
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html
Bài giải tham khảo
Câu 15: Sắp xếp tập dữ liệu iris dựa trên cột sepallength
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.argsort.html
Bài giải tham khảo
Câu 16: Tìm giá trị xuất hiện nhiều nhất trong cột petallength
(cột thứ 3) trong tập dữ liệu iris. Lấy các phần tử duy nhất và số lượng mỗi phần tử.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html
Bài giải tham khảo
Câu 17: Tìm vị trí xuất hiện đầu tiên của một giá trị lớn hơn 1.0 trong cột thứ 4 (petalwidth
) của tập dữ liệu iris.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy/reference/generated/numpy.argwhere.html
Bài giải tham khảo
Câu 18: Tạo id nhóm dựa trên một biến phân loại cho trước, dùng cột species
từ mảng iris.
Các bạn đọc hiểu link sau
https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.argwhere.html
Bài giải tham khảo