Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
Ngày xuất bản
Ngày xuất bản

Tìm hiểu NumPy – Thư viện nền tảng cho Khoa học Dữ liệu và Machine Learning

1. NumPy là gì?

NumPy (Numerical Python) là một thư viện mạnh mẽ của Python, được thiết kế để làm việc với mảng (array) và thực hiện tính toán số học hiệu năng cao.
Nó là nền tảng của hầu hết các thư viện Machine Learning và Data Science như Pandas, TensorFlow, PyTorch, Scikit-learn.

Thay vì dùng list thông thường của Python (chậm và tốn bộ nhớ), NumPy cung cấp mảng n-dimensional (ndarray) giúp:

  • Tốc độ xử lý nhanh hơn gấp nhiều lần
  • Hỗ trợ tính toán vector hóa (vectorization)
  • Dễ dàng thực hiện các phép toán ma trận

2. Vì sao NumPy lại nhanh?

NumPy được viết bằng C và Fortran, và thực hiện phép toán vector hóa – tức là thay vì chạy vòng lặp từng phần tử (như Python), nó xử lý cả khối dữ liệu trong một lần.

Ví dụ:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([10, 20, 30, 40])

print(a + b)   # [11 22 33 44]

Trong Python thuần, bạn phải dùng vòng lặp for, trong khi NumPy chỉ cần 1 dòng.


3. Cấu trúc dữ liệu chính: ndarray

Đây là “trái tim” của NumPy. Một ndarray có thể là 1 chiều (vector), 2 chiều (ma trận), hoặc nhiều chiều hơn.

Ví dụ:

import numpy as np

# Mảng 1 chiều
arr1 = np.array([1, 2, 3])

# Mảng 2 chiều
arr2 = np.array([[1, 2, 3], [4, 5, 6]])

print(arr2.shape)  # (2, 3)
print(arr2.ndim)   # 2 (số chiều)

4. Các thao tác phổ biến trong NumPy

4.1 Tạo mảng nhanh

np.zeros((2, 3))      # Mảng toàn số 0
np.ones((3, 3))       # Mảng toàn số 1
np.arange(0, 10, 2)   # [0 2 4 6 8]
np.random.rand(2, 2)  # Mảng ngẫu nhiên

4.2 Chỉ số và cắt mảng

arr = np.array([[10, 20, 30], [40, 50, 60]])
print(arr[1, 2])      # 60
print(arr[:, 1])      # [20 50]

4.3 Tính toán vector hóa

arr = np.array([1, 2, 3, 4])
print(arr * 2)        # [2 4 6 8]
print(arr ** 2)       # [ 1  4  9 16]
print(np.sqrt(arr))   # [1. 1.414 1.732 2.]

5. Ứng dụng của NumPy trong Machine Learning

NumPy là nền tảng cho các thao tác quan trọng như:

  • Xử lý dữ liệu đầu vào (Data Preprocessing)
  • Chuẩn hóa dữ liệu (Normalization)
  • Tính toán ma trận trọng số (Weights Matrix)
  • Triển khai mô hình từ đầu (ví dụ Linear Regression bằng tay)
  • Sinh dữ liệu ngẫu nhiên (Random Sampling)

Ví dụ: Tạo dữ liệu giả cho training:

X = np.random.rand(100, 3)
y = 3*X[:,0] + 2*X[:,1] + np.random.randn(100)

6. So sánh NumPy với Pandas, TensorFlow

Thư viện Mục đích chính Mức độ trừu tượng Dùng trong
NumPy Tính toán mảng, ma trận Thấp Nền tảng ML/DL
Pandas Xử lý dữ liệu dạng bảng Trung bình Data Analysis
TensorFlow / PyTorch Mô hình Deep Learning Cao AI / DL

7. Kết luận

NumPy là viên gạch đầu tiên trong hành trình học Data ScienceMachine Learning. Nếu bạn hiểu NumPy, bạn sẽ dễ dàng học được các framework lớn như TensorFlow, PyTorch hay Scikit-learn.

💡 Lời khuyên: Hãy luyện tập viết các phép toán vector và ma trận với NumPy mỗi ngày – đó là kỹ năng nền tảng để trở thành Data Scientist giỏi.


📚 Tài nguyên học thêm