Bài 4 - Mảng (array) trong Python
I. Giới thiệu về Mảng (Array) trong Python
Mảng là cấu trúc dữ liệu lưu trữ nhiều giá trị cùng kiểu. Khác với list (có thể chứa nhiều kiểu dữ liệu), mảng trong Python yêu cầu tất cả phần tử phải cùng kiểu, giúp tiết kiệm bộ nhớ và tối ưu hiệu năng.
Khi nào dùng Array thay vì List?
- Khi cần xử lý số liệu hiệu suất cao (tính toán ma trận, xử lý tín hiệu).
- Khi làm việc với thư viện khoa học dữ liệu như NumPy.
II. Cài Đặt Mảng trong Python
Python không hỗ trợ sẵn Array nhưng có thể dùng:
- Module
array
tích hợp (cho mảng đơn giản). - Thư viện NumPy (cho mảng đa chiều và tính toán nâng cao).
1. Sử Dụng Module array
import array
# Khai báo mảng kiểu số nguyên ('i' là type code)
arr = array.array('i', [1, 2, 3, 4, 5])
print(arr) # Output: array('i', [1, 2, 3, 4, 5])
# Thêm phần tử
arr.append(6)
# Truy cập phần tử
print(arr[0]) # Output: 1
# Các type code phổ biến:
# 'i' → integer, 'f' → float, 'd' → double
2. Sử Dụng Thư Viện NumPy (Mạnh mẽ hơn)
import numpy as np
# Tạo mảng 1 chiều
np_arr = np.array([1, 2, 3, 4], dtype=int)
print(np_arr) # Output: [1 2 3 4]
# Mảng 2 chiều (ma trận)
matrix = np.array([[1, 2], [3, 4]])
print(matrix[0, 1]) # Output: 2 (truy cập hàng 0, cột 1)
III. Các Thao Tác Cơ Bản Trên Mảng
1. Duyệt Mảng
arr = array.array('i', [10, 20, 30])
# Duyệt bằng for
for num in arr:
print(num)
# Duyệt bằng index
for i in range(len(arr)):
print(arr[i])
2. Thêm/Xóa Phần Tử
# Thêm cuối mảng
arr.append(40)
# Chèn vào vị trí bất kỳ
arr.insert(1, 15) # Chèn số 15 vào index 1
# Xóa phần tử
arr.remove(20) # Xóa giá trị 20
arr.pop(2) # Xóa phần tử ở index 2
3. Các Phép Toán Cơ Bản (Với NumPy)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# Cộng mảng
print(a + b) # Output: [5 7 9]
# Nhân mảng
print(a * 2) # Output: [2 4 6]
# Tính tổng
print(np.sum(a)) # Output: 6
IV. So Sánh Mảng (Array) và List
Đặc điểm | Array (array module) | List | NumPy Array |
---|---|---|---|
Kiểu dữ liệu | Cùng kiểu | Khác kiểu được | Cùng kiểu |
Hiệu suất | Nhanh hơn list | Chậm hơn array | Rất nhanh |
Thao tác toán học | Hạn chế | Không hỗ trợ | Mạnh mẽ |
Đa chiều | Không | Không | Có |
V. Bài Tập Thực Hành
Bài 1: Tạo mảng số nguyên, tính tổng các phần tử chẵn.
import array
arr = array.array('i', [1, 2, 3, 4, 5])
sum_even = sum(num for num in arr if num % 2 == 0)
print(sum_even) # Output: 6
Bài 2: Dùng NumPy tạo ma trận 3x3, tính định thức.
import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
det = np.linalg.det(matrix)
print(det) # Output: 0 (ma trận suy biến)
VI. Tổng Kết
- Array trong Python phù hợp cho dữ liệu cùng kiểu, ưu tiên hiệu suất.
- List linh hoạt hơn nhưng chậm với dữ liệu lớn.
- NumPy là lựa chọn tốt nhất cho tính toán khoa học.
💡 Tip: Khi làm việc với dữ liệu số, luôn ưu tiên NumPy thay vì list thông thường!