Thư viện numpy trong python (1)


1. Trái tim của NumPy: Đối tượng ndarray

Khác với list mặc định của Python (có thể chứa nhiều kiểu dữ liệu khác nhau và lưu trữ rải rác trong bộ nhớ), NumPy sử dụng đối tượng ndarray (mảng đa chiều).

  • Mảng này chỉ chứa các phần tử có cùng một kiểu dữ liệu (thường là số).

  • Dữ liệu được lưu trữ liên tục trong bộ nhớ, giúp việc truy xuất và tính toán cực kỳ nhanh chóng.

2. Tại sao nên dùng NumPy thay vì Python List?

  • Tốc độ: Hầu hết các hàm cốt lõi của NumPy được viết bằng ngôn ngữ C hoặc C++, giúp nó thực thi các phép toán nhanh hơn gấp hàng chục đến hàng trăm lần so với vòng lặp for hoặc list thông thường của Python.

  • Vector hóa (Vectorization): Bạn có thể thực hiện các phép toán trực tiếp trên toàn bộ mảng (vector, ma trận) mà không cần viết các vòng lặp phức tạp.

  • Broadcasting: Cơ chế thông minh cho phép thực hiện các phép toán trên các mảng có kích thước khác nhau một cách linh hoạt.

3. Các tính năng chính yếu

  • Toán học & Thống kê: Cung cấp sẵn các hàm tính trung bình (mean), trung vị (median), độ lệch chuẩn (std), lượng giác, logarit, v.v.

  • Đại số tuyến tính: Các phép nhân ma trận, tìm ma trận nghịch đảo, tính định thức (module numpy.linalg).

  • Tạo dữ liệu ngẫu nhiên: Tích hợp module numpy.random cực kỳ mạnh mẽ để sinh các phân phối xác suất khác nhau (Gaussian, Binomial, Uniform...), rất hữu ích cho Machine Learning.

Ví dụ minh họa cơ bản

Để bắt đầu sử dụng, bạn thường import thư viện này với tên viết tắt chuẩn là np:

Python

 

import numpy as np

# 1. Tạo mảng 1 chiều (Vector) và 2 chiều (Ma trận)
vector = np.array([1, 2, 3, 4])
matrix = np.array([[1, 2], [3, 4]])

# 2. Vectorization: Thực hiện phép toán trên toàn bộ mảng không cần vòng lặp
print(vector * 10) 
# Kết quả: [10 20 30 40]

# 3. Tính toán thống kê nhanh chóng
print(np.mean(vector)) 
# Kết quả: 2.5

Tóm lại, nếu Data Science là việc thao tác với những tập dữ liệu khổng lồ chứa hàng triệu con số, thì NumPy chính là công cụ giúp hệ thống của bạn xử lý những con số đó một cách trơn tru và tối ưu nhất.