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
arraytí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ềunp_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 forfor num in arr: print(num)
# Duyệt bằng indexfor i in range(len(arr)): print(arr[i])
2. Thêm/Xóa Phần Tử
# Thêm cuối mảngarr.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ị 20arr.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ảngprint(a + b) # Output: [5 7 9]
# Nhân mảngprint(a * 2) # Output: [2 4 6]
# Tính tổngprint(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 arrayarr = 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 npmatrix = 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!