I. List vs NumPy Array

1. Mảng (array) là gì?

Trong các khóa học toán ở trường trung học, vector thường được giới thiệu, ví dụ như một điểm (x, y) trên mặt phẳng hoặc một điểm (x, y, z) trong không gian. Về mặt toán học, một vector có thể được định nghĩa là một tuple gồm số: . Để truy cập các phần tử trong vector, chúng ta chỉ cần một chỉ số (ví dụ: ). Mảng (Arrays) là một khái quát hóa của vector, cho phép chúng ta có nhiều hơn một chỉ số để truy cập các phần tử. Ví dụ, sử dụng 2 chỉ số và sử dụng 3 chỉ số. Các dữ liệu phức tạp cũng có thể được biểu diễn bằng mảng, chẳng hạn như:

  • Ảnh 2D (chiều cao × chiều rộng).
  • Ảnh RGB (kênh x chiều cao x chiều rộng). So sánh List Python và NumPy Array Khi làm việc với dữ liệu trong Python, có hai cấu trúc dữ liệu phổ biến để lưu trữ chuỗi các giá trị: List PythonNumPy Array.
  • List Python (List): ◦ Là một chuỗi các giá trị. ◦ Các giá trị trong một List có thể thuộc bất kỳ kiểu dữ liệu nào (ví dụ: String, Integer, Float, Boolean). Điều này có nghĩa là List có thể chứa các phần tử không đồng nhất về kiểu dữ liệu.
L = [element_1, …, element_n].
  • NumPy Array (Mảng NumPy): ◦ Là một tập hợp các “mục” cùng kiểu. ◦ Tất cả các mảng NumPy đều đồng nhất (homogeneous), nghĩa là các phần tử trong mảng phải có cùng kiểu dữ liệu.
np.array([element_1,…, element_n])

2. Cách tạo mảng (Arrays)

List

# Create a list
lst = ["'AIO", 2025, 3.14, -1, True, [1, 2, 3],]
print("list:", lst)

image 51.png

# Create a list using list comprehension
n = 5
lst_zeros = [0]*n
print("Initialised list with zeros:",lst_zeros)
\#-> Initialised list with zeros: [0, 0, 0, 0, 0]

NumPy Array

import numpy as np
arr = np.array([2, 0, 2, 5, 7, 11])
print("Create an array:", arr)
\#-> Create an array: [2 0 2 5 7 11]
import numpy as np
# Create an array of n floats and initialise it with zeros
n = 5
arr_zeros = np.zeros(n)
print("Initialised array with zeros:", arr_zeros)
\#-> Initialised array with zeros: [0 0 0 0 0]
import numpy as np
# Convert list into array of integers
Ist_int = [2, 0, 2, 5, 7, 1]
arr_int = np.array(lst_int)
print("Array from list:", arr_int)
\#-> Array from list: [2, 0, 2, 5, 7, 1]

3. Arrays Indexing and Slicing

List

l_data = [4, 5, 6, 7, 8, 9]

image 1 18.png image 2 18.png NumPy Array

a_data = np.array([4, 5, 6, 7, 8, 9])

image 3 18.png image 4 14.png

By default:

Start: 0

End: len(list)

Step: 1

Fancy indexing

Ở đây chúng ta có thể truy cập phần tử của Array bằng cách dùng phương thức này.

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print('arr[2], arr[6] =', arr[[1, 5]])
-> arr[2], arr[6] = [2 6]

Masking

Truy cập phần tử của array theo điều kiện. Tạo mảng boolean

arr  = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
idx  = (4 < arr) & (arr % 3 == 0) # những chỉ số thỏa điều kiện
print(idx)
arr1 = arr[idx]
# arr[(4 < arr) & (arr % 3 == 0)]
print(arr1)
->
[False False False False False  True False False  True False]
[6 9]

np.where()

# Sử dụng numpy.where()
idx = np.where((4 < arr) & (arr % 3 == 0))
print(arr[idx])
-> [6 9]

4. Add an element

List Thêm giá trị vào cuối list:

l_data = [4, 5, 6, 7, 8, 9]
element = 0
l_data.append(element)

image 5 12.png Chèn giá trị vào vị trí index = 0:

l_data.insert(0,1)

image 6 11.png NumPy Array

a_data = np.array([4, 5, 6, 7, 8, 9])
element = 0
np.append(a_data, element)

image 7 9.png

np.insert(a_data,0,1)

image 8 9.png

5. Update an element

List Thay đổi giá trị ở index 2 = 1:

l_data = [4, 5, 6, 7, 8, 9]
l_data[2] = 1

image 9 9.png Thêm một list [2,3] vào cuối

l_data.extend([2,3])

image 10 8.png NumPy Array

a_data = np.array([4, 5, 6, 7, 8, 9])
a_data[2] = 1

image 11 8.png

np.append(a_data,[2,3])

image 12 7.png

6. + and * operators

7. Sorting

II. Advanced Techniques in NumPy

III. Pratice NumPy Array