Mảng đa chiều trong Python: Hướng dẫn toàn diện

Giới thiệu

Một mảng đa chiều (multidimensional array) có thể biểu diễn bảng dữ liệu quan hệ hoặc ma trận, được tạo thành từ nhiều mảng một chiều.
Mảng đa chiều thường được sử dụng để lưu trữ dữ liệu cho các phép toán toán học, xử lý hình ảnh, hoặc lưu trữ hồ sơ.

Bài viết này sẽ hướng dẫn cách tạo và triển khai các mảng 2D, 3D và 4D trong Python, kèm ví dụ minh họa.
Để hiểu và làm việc với mảng đa chiều, ta sử dụng thư viện NumPy — một thư viện mạnh mẽ cho phép thao tác với đối tượng mảng đa chiều, ma trận, và nhiều hàm xử lý nhanh trên dữ liệu số.

 Sự khác nhau giữa List và Array trong Python

Python cung cấp List (danh sách), hoạt động tương tự như mảng, nhưng có một vài điểm khác biệt nhỏ.
Nếu bạn muốn hiểu rõ hơn, có thể tham khảo thêm bài viết “sự khác nhau giữa list và array trong Python”.
Trong bài này, ta chỉ tập trung vào array (mảng).

Ví dụ sau minh họa sự khác biệt về kiểu dữ liệu giữa mảng 2D được tạo theo cách thông thường và bằng thư viện NumPy:

# Tạo mảng 2D không dùng gói hỗ trợ arr1 = [[0]*3]*2 print(arr1) print(type(arr1)) print("\n") # Tạo mảng 2D bằng NumPy import numpy as np arr2 = np.array([[1,2,3,4], [5,6,7,8]]) print(arr2) print(type(arr2))

Kết quả:

[[0, 0, 0], [0, 0, 0]] <class 'list'> [[1 2 3 4] [5 6 7 8]] <class 'numpy.ndarray'>

 Cài đặt và import thư viện NumPy

Trước khi bắt đầu làm việc với mảng, cần đảm bảo bạn đã cài đặt và import NumPy trong môi trường lập trình.

# Cài đặt NumPy pip install numpy
# Import thư viện NumPy import numpy as np

Mảng hai chiều (2D array)

Định nghĩa:
Một mảng 2 chiều là mảng của các mảng — tức là một cấu trúc có hàngcột, tương tự như bảng dữ liệu hoặc ma trận.
Bạn có thể hình dung nó như một bảng chữ nhật chứa các phần tử.

Ví dụ:

import numpy as np array_1 = np.array([[1,2,3,4], [5,6,7,8]]) print("Output") print(array_1)

Kết quả:

[[1 2 3 4] [5 6 7 8]]

Mảng ba chiều (3D array)

Một mảng 3 chiều (3D array) bao gồm nhiều mảng 2D.
Có thể hình dung nó như một khối lập phương, trong đó mỗi mặt là một bảng 2D (hàng × cột × “trang”).

Ví dụ:

import numpy as np array_2 = np.array([ [[1,2,3],[3,4,5]], [[6,7,8],[9,8,7]], [[6,5,4],[3,2,1]] ]) print("Output") print(array_2)

Kết quả:

[[[1 2 3] [3 4 5]] [[6 7 8] [9 8 7]] [[6 5 4] [3 2 1]]]

Mảng bốn chiều (4D array)

Mảng 4 chiều (4D array) có thể được hiểu là mảng của các mảng 3D.
Khá khó để hình dung trong không gian, nhưng có thể tưởng tượng nó là một dãy các khối lập phương (3D arrays) xếp liền nhau.

Cú pháp:

arr = np.array([3D_array1, 3D_array2, ...])

Ví dụ:

import numpy as np array_3 = np.array([ [[[1,2],[3,4],[5,6]]], [[[7,8],[9,8],[7,6]]], [[[5,4],[3,2],[1,0]]] ]) print("Output") print(array_3)

Kết quả:

[[[[1 2] [3 4] [5 6]]] [[[7 8] [9 8] [7 6]]] [[[5 4] [3 2] [1 0]]]]

Tổng kết

  • Array là cấu trúc dữ liệu hữu ích để lưu trữ dữ liệu đồng nhất (cùng kiểu).

  • List trong Python cũng tương tự, nhưng Array của NumPy hiệu quả hơn nhiều khi xử lý dữ liệu lớn hoặc ma trận.

  • NumPy là thư viện mã nguồn mở, miễn phí, giúp tạo và thao tác mảng nhanh chóng, mạnh mẽ.

  • NumPy còn cung cấp nhiều hàm dựng sẵn để thao tác với mảng đa chiều, chẳng hạn như:

numpy.ones() # Tạo mảng toàn giá trị 1 numpy.zeros() # Tạo mảng toàn giá trị 0 numpy.identity() # Tạo ma trận đơn vị