Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Nội dung

 Giới thiệu tổng quan (Python, Matlab,…)


 Mảng một chiều
 Mảng nhiều chiều
PHÂN TÍCH DỮ LIỆU  Một số tính toán quan trọng ở Numpy
BẰNG PYTHON
LECTURE 2: NumPy

Giới thiệu Giới thiệu

 NumPy (Numerical Python)


 Là một thư viện bao gồm các đối tượng mảng
đa chiều (multidimensional array) và một tập
hợp các phương thức để xử lý mảng đa chiều
đó.
 Sử dụng Numpy, các toán tử toán học và logic
có thể được thực hiện.
 Thay thế cho List
 Cài đặt: pip install numpy

3 4
Giới thiệu Giới thiệu
 Ưu điểm
 Chứa bộ các giá trị
 Có thể chứa các loại dữ liệu khác nhau
 Có thể thay đổi, thêm, xóa
 Đầy đủ chức năng tính toán
 Rất nhiều thư viện được xây dựng sẵn trong
Numpy
 Cần cho Data Science/Data analytics
- Thực hiện công việc tính toán trên các bộ dữ
liệu (data set)
- Tốc độ cao
5 6

Giới thiệu Giới thiệu


 NumPy - Ndarray Object  Ví dụ
 Đối tượng quan trọng nhất trong NumPy là
kiểu mảng N-dimensional được gọi là
ndarray. Nó mô tả một bộ các item cùng kiểu.
Item trong mảng có thể truy xuất bằng cách sử
dụng zero-based index.
 Mỗi item trong ndarray có cùng kích thước
block trong bộ nhớ và là một đối tượng data-
type gọi là dtype.

7 8
Mảng một chiều Mảng một chiều
 Tạo mảng một chiều  Tạo mảng một chiều
 Từ object có định dạng array: sử dụng  Từ object có định dạng array: sử dụng
array(object, dtype=None) array(object, dtype=None)

9 10

Mảng một chiều Mảng một chiều


 Từ list, tuple: sử dụng asarray(input, dtype=None)  Có giá trị mặc định là 0,1: dùng zeros(shape,
dtype=float), ones(shape, dtype=None)

11 12
Mảng một chiều Mảng một chiều
 Từ range: sử dụng numpy.arange (start, stop,  numpy.random.rand(d0, d1,…,dn)
step, dtype)

 Từ range có khoảng cách đêu nhau: sử dụng  numpy.randint(low, high, size=None, dtype=int)
numpy.linspace (start, stop, num, endpoint, dtype)

 numpy.random.normal(mean, var, size)

13 14

Mảng một chiều Mảng một chiều


 Tạo mảng  Thao tác trên mảng
 np.array  Số phần tử của mảng
 np.asarray
 np.ones, np.zeros
 np.arange
 np.linspace
 np.random.rand  Cập nhật phần tử trong mảng
 np.random.randint
 np.random.normal
Questions: list và array của numpy?

15 16
Mảng một chiều Mảng một chiều
 Thao tác trên mảng  Ví dụ:
 Truy xuất phần tử trên mảng theo chỉ số index

17 18

Mảng một chiều Mảng một chiều


 Thao tác trên mảng  Thao tác trên mảng: Thêm phần tử vào cuối
 Truy xuất phần tử trên mảng: theo slice (start, mảng: sử dụng append(arr, values)
stop, step)

 Thêm phần tử mới: sử dụng insert(arr, index, values

19 20
Mảng một chiều Mảng một chiều
 Thao tác trên mảng  Broadcasting: thực hiện các phép toán số học
 Xóa phần tử tại index trong mảng: sử dụng trên mảng
delete(arr, index).

21 22

Mảng một chiều Mảng một chiều


 Statistical function  Sort, where, extract
 Tìm max, min: sử dụng max() hoặc amax(), min  Sắp xếp tăng dần trong mảng: sử dụng sort()
hoặc amin(), mean(), std(), var(),…

 Tính tổng giá trị: sử dụng sum()

np.sort -> quicksort algorithm


23 24
Mảng một chiều Mảng một chiều
 Sort, where, extract
 Tìm các phần tử trong mảng thỏa điều kiện: sử
 Tìm index của các phần tử trong mảng thỏa điều dụng extract (điều kiện, mảng)
kiên: sử dụng hàm where()

25 26

Mảng một chiều Mảng một chiều – Bài tập thực hành
 Thảo luận  Bài tập tại lớp – file yêu cầu dạng Jupyter:
 Broadcasting numpy-ex1-1D.ipynb, thời gian 25 phút
 np.where  Nộp lên hệ thống elearning, đặt tên file để nộp:
 np.extract STT-Họ và tên-Lớp.ipynb. Ví dụ: 20-Le Van A-
46K29-1.ipynb
 arr=np.array([3,4,5,6]
 arr>5
 arr[arr>5]

 index=arr>5
 arr[index]
27 28
Mảng nhiều chiều Mảng nhiều chiều
 Tạo mảng nhiều chiều: từ object có định dạng  Tạo mảng nhiều chiều: có giá trị mặc định là
array: sử dụng hàm array() 0,1: dùng zeros(), ones()

29 30

Mảng nhiều chiều Mảng nhiều chiều


 Thao tác trên mảng  Truy xuất phần tử trên mảng: theo ma trận, dòng,
 Cập nhật phần tử trong mảng cột (index=0 -> chiều dài -1)

31 32
Mảng nhiều chiều Mảng nhiều chiều
 Truy xuất phần tử trên mảng: theo ma trận, dòng,  Thao tác trên mảng
cột (index=0 -> chiều dài -1)  Truy xuất phần tử trên mảng: <tên mảng>[start:stop:step]

33 34

Mảng nhiều chiều Mảng nhiều chiều


 Thay đổi kích cỡ mảng: dùng shape, reshape
(số_lượng_ma_trận, số_dòng, số_cột)

35 36
Mảng nhiều chiều Mảng nhiều chiều
 Tạo mảng con

37 38

Mảng nhiều chiều Mảng nhiều chiều


 Broadcasting: thực hiện các phép toán số học  Broadcasting: thực hiện các phép toán số học
trên mảng trên mảng

Tương tự, a-b, a*b, a/b


39 40
Mảng nhiều chiều Mảng nhiều chiều
 Statistical function  Tính toán độ lệch chuẩn theo trục được chỉ định:
 Giá trị trung vị: sử dụng median() dựa trên mảng sử dụng hàm std()
đã sắp xếp, lấy trung bình phần tử ở giữa mảng.

41 42

Mảng nhiều chiều Mảng nhiều chiều


 Hệ số tương quan giữa 2 biến x, y  Hệ số tương quan giữa 2 biến x, y

43 44
Mảng nhiều chiều Mảng nhiều chiều
 Sort, where, extract
 Sắp xếp tăng dần trong mảng: sử dụng sort()

45 46

Mảng nhiều chiều Mảng nhiều chiều


 Tìm index của các phần tử trong mảng thỏa điều  Tìm index của các phần tử trong mảng thỏa điều
kiện: sử dụng where() np.random.seed(1) kiện: sử dụng extract(điều kiện, mảng)

47 48
Mảng dữ liệu tự định nghĩa Mảng dữ liệu tự định nghĩa
 Numpy – Data Type Objects (dtype)  Numpy cho phép tạo mảng cấu trúc
 Dtype mô tả: • Cú pháp: numpy.dtype(object, [align, copy])
• Kiểu dữ liệu (int, float,…) • Trong đó:
• Kích thước dữ liệu - Object: để được chuyển đổi thành data type
• Thứ tự byte (byte order) object
- Align: nếu = True, các trường được căn chỉnh
để tối ưu bộ nhớ.
- Copy: nếu = True, tạo một bản sao mới của
dtype object. Nếu = False, không tạo bản sao
của dữ liệu khi tạo một mảng mới với kiểu dữ
liệu này.
49 50

Mảng dữ liệu tự định nghĩa Mảng dữ liệu tự định nghĩa


 Ví du:  Ví du:

51 52
Mảng nhiều chiều Mảng nhiều chiều
 Tìm phần tử chung: numpy.intersect1d  Tìm phần tử “hiệu”: numpy.setdiff1d

53 54

Nhân hai ma trận Giải hệ phương trình

55 56
Giải hệ phương trình Mảng nhiều chiều – Bài tập thực hành
 Bài tập tại lớp – file yêu cầu dạng Jupyter:
numpy-ex2-2D.ipynb, thời gian 25 phút
 Nộp lên hệ thống elearning, đặt tên file để nộp:
STT-Họ và tên-Lớp.ipynb. Ví dụ: 20-Le Van A-
46K29-1-numpy2.ipynb

57 58

Hỏi & Đáp

Cám ơn các bạn đã lắng nghe.

59
59

You might also like