Blog

Thư Viện NumPy Trong Python (Cập nhật 2026)

Last updated on January 13th, 2026 at 03:36 pm

Numpy (Numeric Python): là một thư viện toán học phổ biến và mạnh mẽ của Python. Cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng “core Python” đơn thuần.

1. Cài đặt thư viện Numpy

Mở Command Prompt và gõ lệnh: pip install numpy

2. Các thao tác với Numpy

2.1. Khai báo thư viện

import numpy as np

2.2. Khởi tạo mảng

a) Khởi tạo mảng một chiều

#Khởi tạo mảng một chiều với kiểu dữ liệu các phần tử là Integer
arr = np.array([1,3,4,5,6], dtype = int)

#Khởi tạo mảng một chiều với kiểu dữ liệu mặc định
arr = np.array([1,3,4,5,6])

print(arr)

OUTPUT:

[1 3 4 5 6]

b) Khởi tạo mảng hai chiều

arr1 = np.array([(4,5,6), (1,2,3)], dtype = int)

print(arr1)

OUTPUT:

[[4 5 6]

 [1 2 3]]

c) Khởi tạo mảng ba chiều

arr2 = np.array(([(2,4,0,6), (4,7,5,6)],
                 [(0,3,2,1), (9,4,5,6)],
                 [(5,8,6,4), (1,4,6,8)]), dtype = int)

print(arr2)

OUTPUT:

[[[2 4 0 6]

  [4 7 5 6]]

 [[0 3 2 1]

  [9 4 5 6]]

 [[5 8 6 4]

  [1 4 6 8]]]

d) Khởi tạo với các hàm có sẵn

  • np.zeros((3,4), dtype = int): Tạo mảng hai chiều các phần tử 0 với kích thước 3×4.
  • np.ones((2,3,4), dtype = int): Tạo mảng 3 chiều các phần tử 1 với kích thước 2x3x4.
  • np.arange(1,7,2): Tạo mảng với các phần tử từ 1 – 6 với bước nhảy là 2.
  • np.full((2,3),5): Tạo mảng 2 chiều các phần tử 5 với kích thước 2×3.
  • np.eye(4, dtype=int): Tạo ma trận đơn vị với kích thước là 4×4.
  • np.random.random((2,3)): Tạo ma trận các phần tử ngẫu nhiên với kích thước 2×3.

2.3. Thao tác với mảng

  • dtype: Kiểu dữ liệu của phần tử trong mảng.
  • shape: Kích thước của mảng.
  • size: Số phần tử trong mảng.
  • ndim: Số chiều của mảng.
print("Kiểu dữ liệu của phần tử trong mảng:", arr2.dtype)
print("Kích thước của mảng:", arr2.shape)
print("Số phần tử trong mảng:", arr2.size)
print("Số chiều của mảng:", arr2.ndim)

Output:

Kiểu dữ liệu của phần tử trong mảng: int32

Kích thước của mảng: (3, 2, 4)

Số phần tử trong mảng: 24

Số chiều của mảng: 3

Truy cập phần tử trong mảng

Các phần tử trong mảng được đánh số từ 0 trở đi

  • arr[i]: Truy cập tới phần tử thứ i của mảng 1 chiều.
  • arr1[i,j]: Truy cập tới phần tử hàng i, cột j của mảng 2 chiều.
  • arr2[n,i,j]: Truy cập tới phần tử chiều n, hàng i, cột j của mảng 3 chiều.
  • arr[a:b]: Truy cập tới các phần tử từ a đến b-1 trong mảng 1 chiều.
  • arr1[:,:i]: Truy cập tới phần tử từ cột 0 đến cột i-1, của tất cả các hàng trong mảng 2 chiều.
print("arr[2]=", arr[2])
print("arr1[1:2]=", arr1[1,2])
print("arr2[1,2,3]=", arr2[1,1,3])
print("arr[0:3]=", arr[0:3])
print("arr1[:,:1]=", arr1[:,:2])​

Output

arr[2]= 4

arr1[1:2]= 3

arr2[1,2,3]= 6

arr[0:3]= [1 3 4]

arr1[:,:1]= [[4 5]

            [1 2]]

Đọc mảng từ file .txt

diem_2a = np.loadtxt('Diem_2A.txt', dtype = int, delimiter=',') #ở đây tất cả phần tử là số nguyên nên mình để kiểu int cho dễ nhìn, các phần tử phân tách nhau bởi dấu ","

print("File dữ liệu điểm lớp 2A:\n", diem_2a)

Output

Các hàm thống kê

  • arr.max() hoặc np.max(arr): Lấy giá trị lớn nhất của mảng arr.
  • arr.min() hoặc np.min(arr): Lấy giá trị nhỏ nhất của mảng arr.
  • arr.sum() hoặc np.sum(arr): Tổng tất cả các phần tử trong mảng arr.
  • arr.mean() hoặc np.mean(arr): Trung bình cộng của tất cả các phần tử trong mảng arr.
  • np.median(arr): Trả về giá trị trung vị của mảng arr.
print("Giá trị lớn nhất của mảng arr là:", np.max(arr))
print("Giá trị nhỏ nhất của mảng arr là:", np.min(arr))
print("Tổng tất cả các phần tử của mảng arr là:", np.sum(arr))
print("Trung bình cộng tất cả các phần tử của mảng arr là:", np.mean(arr))
print("Giá trị trung vị của mảng arr là:", np.median(arr))

Output:

Giá trị lớn nhất của mảng arr là: 6

Giá trị nhỏ nhất của mảng arr là: 1

Tổng tất cả các phần tử của mảng arr là: 19

Trung bình cộng tất cả các phần tử của mảng arr là: 3.8

Giá trị trung vị của mảng arr là: 4.0

NumPy dtype

Basic TypeAvailable Numpy typesComments
BooleanboolElements are 1 byte in size.
Integerint8, int16, int32, int64, int128, intint defaults to the size of int in C for the platform.
Unsigned Integeruint8, uint16, uint32, uint64, uint128, uintuint defaults to the size of unsigned int in c for the platform.
Floatfloat32, float64, float,longfloatFloat is always a double precision floating point value (64 bits). longfloat represents large precision floats. Its size is platform dependent.
Complexcomplex64, complex128, complexThe real and complex elements of a complex64 are each represented by a single precision (32 bit) value for a total size of 64 bits.
Stringsstr, unicodeUnicode is always UTF32 (UCS4)
ObjectobjectRepresent items in array as Python objects.
RecordsvoidUsed for arbitrary data structures in record arrays.

Toán tử trong NumPy Array

a = np.array([2,1,3,4,5])
Toán tửVí dụKết quả
 (+) Một số với mảng3 + arrarr +3[4, 6, 7, 8, 9]
(+) Mảng với mảngarr + aa + arr[3, 4, 7, 9, 11]
(-) Một số với mảngarr – 33 – arr[-2, 0, 1, 2, 3][2, 0, -1, -2, -3]
(-) Mảng với mảngarr – aa – arr[-1, 2, 1, 1, 1][1, -2, -1, -1, -1]
(*) Một số với mảngarr * 33 * arr[3, 9, 12, 15, 18]
(*) Mảng với mảngarr * aa * arr[2, 3, 12, 20, 30]
(/) Một số với mảngarr / 33 / arr[0.33333333, 1., 1.33333333, 1.66666667, 2.][3.,   1.,   0.75, 0.6,  0.5]
(/) Mảng với mảngarr / aa / arr[0.5, 3., 1.33333333, 1.25, 1.2][2., 0.33333333, 0.75, 0.8, 0.83333333]
Hạng của ma trậnnp.rank(arr)np.rank(arr1)12

3. Xu hướng NumPy trong bối cảnh dữ liệu và Python hiện đại (2025–2026)

NumPy tiếp tục giữ vai trò thư viện nền tảng cho xử lý số học và dữ liệu trong Python, đồng thời phát triển theo nhiều hướng hỗ trợ các workflow dữ liệu phức tạp hơn.

3.1. Phiên bản NumPy 2.x – nâng cấp rõ rệt

Trong giai đoạn 2024–2025, NumPy đã phát hành chính thức phiên bản 2.0 và các bản minor 2.1, 2.2, 2.3, 2.4 với nhiều cải tiến đáng chú ý như:

  • Hỗ trợ tốt hơn cho multi-threading và tối ưu hóa performance
  • Nâng cấp hệ thống type annotation và cải thiện tài liệu
  • Tối ưu hỗ trợ Python mới (như Python 3.13–3.14)
  • API hiện đại hơn và clean code base cho bảo trì lâu dài

Điều này cho thấy NumPy không chỉ là thư viện legacy mà đang được đầu tư dài hạn để phù hợp với Python hiện đại và các ứng dụng dữ liệu quy mô lớn.

3.2. NumPy “dẻo dai” hơn với các backend khác

Một trong những hướng phát triển đang được cộng đồng quan tâm là tính tương thích giữa NumPy và các thư viện backend khác, như CuPy, JAX hay PyTorch thông qua các chuẩn giao diện mảng chung. Mục tiêu là cho phép code NumPy hoạt động với:

  • GPU / TPU
  • Distributed arrays
  • Thao tác vectorized trên nền tảng khác nhau

Điều này mở ra khả năng dùng NumPy không chỉ trên CPU mà còn trong pipeline tính toán hiệu năng cao phục vụ AI/ML.

3.3. NumPy vẫn là “động cơ” của khoa học dữ liệu và ML

Mặc dù nhiều thư viện số xuất hiện, NumPy vẫn là nền tảng cho nhiều công cụ lớn trong hệ sinh thái data science và machine learning:

  • Pandas dùng NumPy array làm core structure
  • scikit-learn dựa vào NumPy để xử lý dữ liệu đầu vào
  • TensorFlow/PyTorch chuyển đổi dữ liệu sang dạng tương thích NumPy khi cần
    Điều này có nghĩa là kỹ năng NumPy vẫn là “nền tảng bắt buộc” cho bất kỳ ai làm phân tích dữ liệu, ML hay AI.

3.4. Cải tiến hiệu năng và kiểu dữ liệu

NumPy phiên bản mới cũng tập trung vào:

  • Cải thiện đa luồng (multi-threaded execution)
  • Hỗ trợ dtype mới và nâng cao kiểm soát kiểu dữ liệu
  • Các tối ưu hoá nội bộ giúp tiết kiệm bộ nhớ và tăng tốc tính toán trên arrays lớn
    Những cải tiến này giúp NumPy xử lý dữ liệu lớn hiệu quả hơn mà không cần đổi ngôn ngữ hay thư viện.

4. Lời kết

Như vậy là mình đã giới thiệu cơ bản cho bạn về thư viện NumPy trong Python. Ở bài sau mình sẽ giới thiệu cho các bạn về cách xử lý dữ liệu với thư viện Pandas.

INDA Academy tự hào là đơn vị tiên phong trong việc đào tạo phân tích dữ liệu và AI chuyên sâu, đặc biệt cho khối ngành Ngân hàng – Tài chính – Bảo hiểm tại Việt Nam. Sau hơn 12 năm “thực chiến” cùng những dòng chảy dữ liệu khổng lồ, chúng tôi đã xây dựng nên một hệ sinh thái đào tạo toàn diện, giúp hàng nghìn học viên chuyển mình từ người mới bắt đầu trở thành những chuyên gia lành nghề, sẵn sàng đáp ứng tiêu chuẩn khắt khe của các doanh nghiệp lớn.

Điểm khác biệt lớn nhất tại INDA chính là triết lý đào tạo dựa trên các dự án thực tế (Project-based) và lộ trình cá nhân hóa nhờ ứng dụng AI. Chúng tôi không chỉ dạy bạn cách sử dụng công cụ, mà còn truyền tải tư duy khai phá giá trị từ dữ liệu để đưa ra quyết định kinh doanh chính xác.

Tìm hiểu thêm về các khóa học TẠI ĐÂY:
Lộ trình đào tạo Data Engineer
Lộ trình đào tạo Data Analyst
Lộ trình đào tạo Tester
Khóa học Data Engineer nâng cao – Thực chiến 5 dự án doanh nghiệp
Khóa học Data Analyst nâng cao – Thực chiến 5 dự án doanh nghiệp

Nguồn Internet – Thangtn

    Leave a Reply

    Your email address will not be published. Required fields are marked *