Trong Python, việc sử dụng ma trận hoặc vector từ thư viện như NumPy sẽ nhanh hơn so với vòng lặp thông thường. Dưới đây là ví dụ về tính tổng các phần tử của hai danh sách.
1. Sử dụng vòng lặp thông thường:
import time
# Tạo hai danh sách lớn
list1 = range(1000000)
list2 = range(1000000)
# Tính tổng từng phần tử bằng vòng lặp
start = time.time()
result = [x + y for x, y in zip(list1, list2)]
end = time.time()
print(f"Thời gian dùng vòng lặp: {end - start} giây")
2. Sử dụng NumPy (ma trận/vector hóa):
import numpy as np
import time
# Tạo hai mảng lớn bằng NumPy
arr1 = np.arange(1000000)
arr2 = np.arange(1000000)
# Tính tổng từng phần tử bằng NumPy
start = time.time()
result = arr1 + arr2
end = time.time()
print(f"Thời gian dùng NumPy: {end - start} giây")
Kết quả:
Thông thường, phương pháp sử dụng NumPy nhanh hơn rất nhiều so với dùng vòng lặp vì NumPy thực hiện các phép toán trực tiếp trên bộ nhớ, tận dụng sự tối ưu ở cấp độ thấp. Trong khi vòng lặp phải duyệt qua từng phần tử một cách tuần tự, NumPy xử lý hàng loạt (vectorization).