AI Cho Mọi Người

AI Cho Mọi Người

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).

  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.
  2. Số trung vị (Median) là giá trị giữa trong một phân bố
  3. Độ 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 versicolorvirginica.

 

Các bạn đọc hiểu link sau

https://docs.scipy.org/doc/numpy/reference/generated/numpy.searchsorted.html

https://docs.scipy.org/doc/numpy/reference/random/generated/numpy.random.mtrand.RandomState.choice.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