Làm Việc Với NumPy Trong Python

1. NumPy Là Gì?
NumPy (Numerical Python) là một thư viện mạnh mẽ trong Python, hỗ trợ tính toán khoa học và xử lý mảng lớn. Nó cung cấp:
- Mảng nhiều chiều (ndarray) thay thế cho danh sách (list) của Python.
- Các hàm toán học tối ưu hóa, nhanh hơn so với danh sách thông thường.
- Hỗ trợ các phép toán ma trận, thống kê, và xử lý dữ liệu số.
2. Cài Đặt NumPy
Để sử dụng NumPy, bạn cần cài đặt thư viện này trước:
pip install numpy
Sau đó, trong Python, bạn có thể import thư viện:
import numpy as np
3. Tạo Mảng Trong NumPy
Tạo mảng một chiều
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a)
print(type(a)) # <class 'numpy.ndarray'>
Tạo mảng nhiều chiều (ma trận)
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
Kết quả:
[[1 2 3]
[4 5 6]]
Tạo mảng với giá trị đặc biệt
- Mảng toàn số 0:
np.zeros((2, 3)) # 2 hàng, 3 cột
- Mảng toàn số 1:
np.ones((3, 2))
- Mảng số ngẫu nhiên:
np.random.rand(2, 3) # Mảng 2x3 với số ngẫu nhiên từ 0 đến 1
- Mảng số nguyên ngẫu nhiên:
np.random.randint(1, 10, (2, 3)) # Mảng 2x3 với số từ 1 đến 9
4. Các Phép Toán Số Học Với NumPy
Cộng, Trừ, Nhân, Chia
NumPy cho phép thực hiện phép toán trên toàn bộ mảng một cách hiệu quả:
a = np.array([10, 20, 30])
b = np.array([1, 2, 3])
print(a + b) # [11 22 33]
print(a - b) # [ 9 18 27]
print(a * b) # [10 40 90]
print(a / b) # [10. 10. 10.]
Nhân Ma Trận
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# Tích ma trận (dot product)
C = np.dot(A, B)
print(C)
Kết quả:
[[19 22]
[43 50]]
Lũy Thừa & Chia Lấy Dư
a = np.array([2, 3, 4])
print(a ** 2) # [ 4 9 16]
print(a % 2) # [0 1 0]
5. Các Hàm Thống Kê Quan Trọng
NumPy hỗ trợ nhiều phép toán thống kê:
a = np.array([1, 2, 3, 4, 5])
print(np.mean(a)) # Trung bình: 3.0
print(np.median(a)) # Trung vị: 3.0
print(np.std(a)) # Độ lệch chuẩn
print(np.min(a)) # Giá trị nhỏ nhất
print(np.max(a)) # Giá trị lớn nhất
print(np.sum(a)) # Tổng: 15
6. Indexing và Slicing (Truy Cập Phần Tử Trong Mảng)
Lấy phần tử theo index
a = np.array([10, 20, 30, 40, 50])
print(a[0]) # 10
print(a[-1]) # 50
Cắt mảng (Slicing)
print(a[1:4]) # [20 30 40]
print(a[:3]) # [10 20 30]
print(a[::2]) # [10 30 50] (Lấy cách 2 phần tử)
Lấy phần tử từ mảng 2D
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b[0, 1]) # 2 (hàng 0, cột 1)
print(b[:, 1]) # [2 5] (cột 1 của cả hai hàng)
7. Reshape (Thay Đổi Kích Thước Mảng)
a = np.array([1, 2, 3, 4, 5, 6])
b = a.reshape(2, 3) # Chuyển thành mảng 2 hàng, 3 cột
print(b)
Kết quả:
[[1 2 3]
[4 5 6]]
8. Ghép Và Tách Mảng
Ghép mảng
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.concatenate((a, b))) # [1 2 3 4 5 6]
Tách mảng
a = np.array([1, 2, 3, 4, 5, 6])
b = np.split(a, 3) # Chia thành 3 mảng con
print(b)
Kết quả:
[array([1, 2]), array([3, 4]), array([5, 6])]
9. Ứng Dụng Thực Tế
Tạo Dữ Liệu Giả Lập
NumPy thường được sử dụng để tạo dữ liệu mô phỏng cho phân tích dữ liệu và AI:
import numpy as np
# Dữ liệu ngẫu nhiên mô phỏng điểm số của 100 sinh viên
diem = np.random.randint(50, 100, 100)
print(f"Điểm trung bình: {np.mean(diem)}")
print(f"Điểm cao nhất: {np.max(diem)}")
print(f"Điểm thấp nhất: {np.min(diem)}")
10. Tổng Kết
Chức Năng | Cách Dùng |
---|---|
Tạo mảng | np.array([1, 2, 3]) |
Tạo mảng đặc biệt | np.zeros((2,3)), np.ones((3,2)) |
Phép toán số học | a + b, a * b, a ** 2 |
Thống kê | np.mean(), np.median(), np.std() |
Truy cập phần tử | a[0], a[1:4], b[:,1] |
Thay đổi kích thước | a.reshape(2,3) |
Ghép & tách mảng | np.concatenate(), np.split() |
NumPy là một thư viện mạnh mẽ giúp xử lý dữ liệu nhanh chóng và hiệu quả. Nếu bạn làm việc với khoa học dữ liệu, AI hoặc tính toán số học, NumPy là công cụ không thể thiếu!

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com