Numpy
What is Numpy?
Numpy là một thư viện Python cho phép bạn thực hiện các phép tính số. Cốt lõi của Numpy là một kiểu dữ liệu cơ bản được gọi là mảng Numpy.
Trong Python, Numpy là một trong những thư viện quan trọng nhất cho khoa học dữ liệu và học máy.
Trong tâm của Numpy là làm việc với dữ liệu số. Nó vừa mạnh mẽ vừa ở mức cơ bản, do đó cung cấp các chức năng cơ bản cho các thuật toán cấp cao. Nếu muốn bước vào lĩnh vực học máy và khoa học dữ liệu trước tiên phải thành thạo Numpy
.
Type | Description | Bytes |
---|---|---|
bool |
boolean | 1 |
int |
int | 4 or 8 |
float |
float | 8 |
complex |
complex | 16 |
np.int8 |
Integer | 1 |
np.int16 |
Integer | 2 |
np.int32 |
Integer | 4 |
np.int64 |
Integer | 8 |
np.float16 |
Float | 2 |
np.float32 |
Float | 4 |
np.float64 |
Float | 8 |
Sau đây là một ví dụ cách tạo các mảng numpy
với nhiều kiểu dữ liệu khác nhau.
Ví dụ chạy với
numpy
phiên bản2.0.2
1 2 3 4 5 6 7 8 9 10 11 |
|
Trong ví dụ trên ta tạo hai mảng numpy
. Mảng đầu tiên có kiểu dữ liệu np.int16
. Mảng thứ hai có kiểu dữ liệu np.float64
.
np?
để hiện thị tài liệu hướng dẫn.np.<TAB>
để hiện thị các nội dung.
Tạo mảng
Ta sẽ tạo 3 mảng giá trị ngẫu nhiên: mảng 1 chiều, mảng 2 chiều, mảng 3 chiều.
seed
là trình tạo số ngẫu nhiên củanumpy
, với một giá trị khởi tạo cố định để đảm bảo các mảng ngẫu nhiên được tạo ra giống nhau mỗi khi đoạn mã này được chạy.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
ndim
: cho biết số chiều của mảng.shape
: cho biết hình dạng của mảng.size
: cho biết mảng có bao nhiêu phần tử.dtype
: cho biết kiểu dữ liệu phần tử trong mảng.itemsize
: liệt kê kích thước (tính bằng byte).nbytes
: liệt kê tổng kích thước của mảng (byte).
Array Indexing
x[start:stop:step]
1 2 3 4 5 |
|
Reshaping of Arrays
Dùng thuộc tính reshape
để thay đổi hình dạng của 1 mảng numpy
.
Trong ví dụ sau ta tạo 1 mảng 1 chiều có 9 phần tử. Sau đó dùng reshape
chuyển thành mảng 2 chiều 3x3.
1 2 |
|
Hoặc có thể dùng từ khóa newaxis
1 2 3 4 5 6 7 |
|
Array Concatenation and Splitting
Tất cả các hàm trước đều hoạt động trên mảng đơn lẻ. Ta có thể kết hợp nhiều mảng thành một và ngược lại chia một mảng thành nhiều mảng.
Concatenation of arrays: np.concatenate
, np.vstack
, np.hstack
, np.concatenate
1 2 3 |
|
vstack
: thêm theo chiều dọc (mở rộng theo dòng)hstack
: thêm theo chiều ngang (mở rộng theo cột)
Splitting of arrays: np.vsplit
, np.hsplit
vsplit
: chia theo chiều dọc (theo dòng)hsplit
: chia theo chiều ngang (theo cột)split
:1 2 3 4 5 6 7 8 9 10 11 12
x = [1, 2, 3, 99, 99, 3, 2, 1] x1, x2, x3 = np.split(x, [3, 5]) print(x1, x2, x3) grid = np.arange(16).reshape((4, 4)) upper, lower = np.vsplit(grid, [2]) #[2] tham số này cho biết mảng muốn chia có 2 dòng print(upper) print(lower) left, right = np.hsplit(grid, [2]) print(left) print(right)
thường ta sẽ gặp từ khóa
axis=0
,axis=1
. 0 tương ứng với dòng, 1 tương ứng với cột.
Tổng kết
Ta đã tìm hiểu những khái niệm hết sức cơ bản numpy
như:
- Tạo mảng.
- Kiểu dữ liệu phần tử của mảng.
- Kích thước, hình dạng, thay đổi hình dạng.
- Gộp mảng, chia tách mảng.