Skip to main content

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:

  1. Module array tích hợp (cho mảng đơn giản).
  2. 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ểmArray (array module)ListNumPy Array
Kiểu dữ liệuCùng kiểuKhác kiểu đượcCùng kiểu
Hiệu suấtNhanh hơn listChậm hơn arrayRất nhanh
Thao tác toán họcHạn chếKhông hỗ trợMạnh mẽ
Đa chiềuKhôngKhông

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!