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.
Mục lục
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 Type | Available Numpy types | Comments |
| Boolean | bool | Elements are 1 byte in size. |
| Integer | int8, int16, int32, int64, int128, int | int defaults to the size of int in C for the platform. |
| Unsigned Integer | uint8, uint16, uint32, uint64, uint128, uint | uint defaults to the size of unsigned int in c for the platform. |
| Float | float32, float64, float,longfloat | Float is always a double precision floating point value (64 bits). longfloat represents large precision floats. Its size is platform dependent. |
| Complex | complex64, complex128, complex | The real and complex elements of a complex64 are each represented by a single precision (32 bit) value for a total size of 64 bits. |
| Strings | str, unicode | Unicode is always UTF32 (UCS4) |
| Object | object | Represent items in array as Python objects. |
| Records | void | Used 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ảng | 3 + arrarr +3 | [4, 6, 7, 8, 9] |
| (+) Mảng với mảng | arr + aa + arr | [3, 4, 7, 9, 11] |
| (-) Một số với mảng | arr – 33 – arr | [-2, 0, 1, 2, 3][2, 0, -1, -2, -3] |
| (-) Mảng với mảng | arr – aa – arr | [-1, 2, 1, 1, 1][1, -2, -1, -1, -1] |
| (*) Một số với mảng | arr * 33 * arr | [3, 9, 12, 15, 18] |
| (*) Mảng với mảng | arr * aa * arr | [2, 3, 12, 20, 30] |
| (/) Một số với mảng | arr / 33 / arr | [0.33333333, 1., 1.33333333, 1.66666667, 2.][3., 1., 0.75, 0.6, 0.5] |
| (/) Mảng với mảng | arr / 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ận | np.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

