close

NumPy là gì? Tổng quan về thư viện NumPy trong Python

Tác giả: Đông Tùng Ngày cập nhật: 28/12/2023 Chuyên mục: Chưa phân loại
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Khi bắt đầu khám phá sâu hơn vào thế giới phong phú của lập trình Python, bạn không thể bỏ qua một công cụ mạnh mẽ mà hầu hết các nhà khoa học dữ liệu và nhà nghiên cứu sử dụng. Đó là NumPy. Vậy cụ thể NumPy là gì? Các bạn hãy cùng TinoHost tìm hiểu qua bài viết dưới đây nhé!

Tổng quan về NumPy

NumPy là gì?

NumPy (viết tắt của Numerical Python) là một thư viện quan trọng trong lập trình Python. Công cụ này được tạo ra bởi một cộng đồng các nhà nghiên cứu và nhà phát triển với mục đích giúp các lập trình viên thao tác dữ liệu số học và thực hiện các phép toán toán học phức tạp một cách hiệu quả.

Một trong những ưu điểm nổi bật của NumPy là khả năng làm việc với mảng đa chiều (arrays) và ma trận, cho phép lưu trữ và xử lý dữ liệu dễ dàng. Đây không chỉ là một công cụ hữu ích cho các nhà khoa học dữ liệu, mà còn là một lựa chọn tuyệt vời cho những người làm việc trong các lĩnh vực như khoa học máy tính, xử lý ảnh và thị giác máy tính.

numpy-viet-tat-cua-numerical-python-la-mot-thu-vien-quan-trong-trong-lap-trinh-python
NumPy (viết tắt của Numerical Python) là một thư viện quan trọng trong lập trình Python

NumPy cung cấp một loạt các hàm và phương pháp giúp thực hiện các phép toán toán học, thống kê và biểu đồ hóa dữ liệu vô cùng linh hoạt. Đồng thời, đây cũng là một phần quan trọng của hệ sinh thái các thư viện tính toán trong Python. Với NumPy, việc xử lý dữ liệu số học trở nên dễ dàng và hiệu quả hơn, giúp Python trở thành một trong những ngôn ngữ lập trình phổ biến nhất trong lĩnh vực khoa học dữ liệu và nghiên cứu toán học.

Các tính năng nổi bật của NumPy

Mảng đa chiều (Arrays)

NumPy cho phép tạo ra và quản lý các Arrays (mảng), giúp lưu trữ dữ liệu số học một cách dễ dàng và hiệu quả. Nhờ đó, việc xử lý các tập dữ liệu phức tạp trở nên thuận tiện hơn.

Phép toán số học

NumPy cung cấp các phép toán toán học như cộng, trừ, nhân, chia trên mảng dữ liệu nhanh chóng. Các phép toán này được tối ưu hóa để xử lý dữ liệu lớn hiệu quả hơn.

Phép toán Vectorized

NumPy cho phép thực hiện các phép toán trên toàn bộ mảng dữ liệu, không cần viết vòng lặp. Điều này giúp tăng tốc độ xử lý dữ liệu đáng kể so với việc sử dụng các danh sách thông thường trong Python.

phep-toan-Vectorized
Phép toán Vectorized

Broadcasting

NumPy tự động mở rộng kích thước của các mảng để phù hợp với nhau trong các phép toán. Do đó, các phép toán giữa các mảng có kích thước khác nhau có thể được thực hiện mà không cần phải thay đổi kích thước của chúng theo cách thủ công.

Hàm toán học và thống kê

NumPy cung cấp một loạt các hàm toán học và thống kê như sin, cos, mean, median, std,…để xử lý dữ liệu số học.

Indexing và Slicing

NumPy hỗ trợ các phép indexing và slicing trên mảng dữ liệu giúp bạn truy cập và chỉnh sửa dữ liệu một cách dễ dàng.

Phép toán trên mảng logic

NumPy cho phép bạn thực hiện các phép toán logic như AND, OR, NOT trên mảng dữ liệu một cách dễ dàng.

Phép toán đại số tuyến tính

NumPy cung cấp nhiều hàm và phương thức để thực hiện các phép toán đại số tuyến tính như ma trận chuyển vị, nhân ma trận, giải hệ phương trình tuyến tính và nhiều thuật toán khác.

numpy-cung-cap-nhieu-ham-de-thuc-hien-cac-phep-toan-dai-so-tuyen-tinh
NumPy cung cấp nhiều hàm để thực hiện các phép toán đại số tuyến tính

Làm việc với dữ liệu đa chiều

NumPy cho phép bạn thực hiện các phép toán trên dữ liệu đa chiều, thích hợp cho việc xử lý hình ảnh, âm thanh và các dữ liệu khoa học khác.

Tích hợp C với Python

NumPy được viết bằng ngôn ngữ lập trình C, điều này giúp tăng hiệu suất của các phép toán, đặc biệt là trên các mảng dữ liệu lớn.

Tích hợp với các thư viện khác

Cộng đồng người dùng NumPy lớn mạnh, điều này có nghĩa là sẽ có rất nhiều các thư viện và công cụ khác trong hệ sinh thái của Python được xây dựng dựa trên NumPy.

Đồng thời, NumPy cũng tương thích tốt với nhiều thư viện và framework khác trong hệ sinh thái của Python, giúp bạn dễ dàng tích hợp vào các dự án lớn và phức tạp.

Một số hạn chế của NumPy

  • Đối với người mới học lập trình hoặc Python, việc sử dụng NumPy có thể đòi hỏi một thời gian để nắm vững cú pháp và các chức năng của thư viện này.
  • Trong một số ứng dụng như web development, NumPy có thể không cần thiết và không hiệu quả so với các thư viện khác hoặc khi sử dụng ngôn ngữ lập trình khác.
  • Các mảng dữ liệu trong NumPy có thể tốn nhiều bộ nhớ hơn so với các danh sách thông thường trong Python. Điều này có thể là một vấn đề đối với các ứng dụng yêu cầu tiết kiệm bộ nhớ.
  • Tính năng broadcasting có thể dẫn đến kết quả không mong muốn nếu không sử dụng đúng cách, đặc biệt đối với người mới học sử dụng NumPy.

Đối tượng kiểu dữ liệu (dtype) trong NumPy

Số nguyên

arr = np.array([1, 2, 3, 4], dtype='int32')

# dtype của arr là int32

Số thực

arr = np.array([1.1, 2.2, 3.3], dtype='float64')

# dtype của arr là float64

Số nguyên không dấu

arr = np.array([0, 1, 2], dtype='uint8')

# dtype của arr là uint8 (8-bit số nguyên không dấu)

Chuỗi ký tự

arr = np.array(['apple', 'banana', 'cherry'], dtype='str')

# dtype của arr là str (chuỗi ký tự)

Kiểu dữ liệu nguyên thủy của Python:

arr = np.array([1, 2, 3], dtype=object)

# dtype của arr là object (kiểu dữ liệu nguyên thủy của Python)

doi-tuong-kieu-du-lieu-dtype-trong-numpy
Đối tượng kiểu dữ liệu (dtype) trong NumPy

Kiểu dữ liệu tùy chỉnh

Ngoài ra, NumPy cho phép định nghĩa các kiểu dữ liệu tùy chỉnh, giúp xác định cách dữ liệu được lưu trữ và xử lý.

Việc hiểu và quản lý đúng đối tượng kiểu dữ liệu trong NumPy là điều quan trọng để đảm bảo tính chính xác cũng như hiệu suất của các phép toán trong quá trình lập trình.

Các phương thức trong Numpy

Phương thức tạo mảng

  • np.array(): Tạo mảng từ một danh sách hoặc tuple.
  • np.zeros(shape): Tạo mảng với tất cả các phần tử là 0.
  • np.ones(shape): Tạo mảng với tất cả các phần tử là 1.
  • np.random.rand(shape): Tạo mảng với các giá trị ngẫu nhiên từ phân phối đều.

Phương thức thao tác dữ liệu

  • np.shape(): Trả về hình dạng (kích thước) của mảng.
  • np.reshape(new_shape): Thay đổi hình dạng của mảng.
  • np.concatenate((arr1, arr2), axis): Ghép các mảng theo trục được chỉ định.
  • np.split(arr, indices_or_sections, axis): Chia mảng thành các mảng con.
cac-phuong-thuc-trong-numpy
Các phương thức trong Numpy

Phương thức toán học và thống kê

  • np.sum(arr): Tổng các phần tử trong mảng.
  • np.mean(arr): Trung bình các phần tử trong mảng.
  • np.max(arr), np.min(arr): Giá trị lớn nhất và nhỏ nhất trong mảng.
  • np.std(arr): Độ lệch chuẩn của dữ liệu.
  • np.dot(arr1, arr2): Tích vô hướng của hai mảng.

Phương thức truy cập và thay đổi phần tử

  • arr[index]: Truy cập phần tử tại chỉ số index trong mảng.
  • arr[start:stop:step]: Truy cập các phần tử từ vị trí start đến stop với bước step.
  • arr[index] = new_value: Gán giá trị mới cho phần tử tại chỉ số index trong mảng.

Cách sử dụng NumPy cơ bản

Nhập thư viện

Trước tiên, bạn cần import thư viện NumPy vào chương trình Python của mình. Thông thường, người ta sẽ sử dụng np như một biến tắt cho NumPy để gõ ngắn gọn hơn:

import numpy as np

Tạo mảng (Arrays)

Sử dụng np.array() để tạo một mảng. Ví dụ, để tạo một mảng từ một danh sách:

arr = np.array([1, 2, 3, 4, 5])

Thực hiện các phép toán cơ bản

NumPy cho phép bạn thực hiện các phép toán toán học trên mảng một cách dễ dàng. Ví dụ, để cộng hai mảng:

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

result = np.add(arr1, arr2)

Phép toán đại số tuyến tính

Sử dụng các hàm như np.dot() để thực hiện các phép toán đại số tuyến tính như nhân ma trận:

matrix1 = np.array([[1, 2], [3, 4]])

matrix2 = np.array([[5, 6], [7, 8]])

result = np.dot(matrix1, matrix2)
cach-su-dung-numpy-co-ban
Cách sử dụng NumPy cơ bản

Sử dụng hàm thống kê và toán học

NumPy cung cấp nhiều hàm thống kê và toán học như np.mean(), np.sum(), np.sqrt(), giúp thao tác dữ liệu một cách linh hoạt:

arr = np.array([1, 2, 3, 4, 5])

mean_value = np.mean(arr)

sum_value = np.sum(arr)

Broadcasting

Broadcasting cho phép bạn thực hiện các phép toán trên các mảng có hình dạng khác nhau một cách tự động:

arr1 = np.array([1, 2, 3])

scalar = 2

result = arr1 * scalar # Kết quả: [2, 4, 6]

Truy cập và cắt lấy phần tử trong mảng

Sử dụng chỉ số để truy cập và cắt lấy các phần tử trong mảng NumPy như bạn làm với danh sách thông thường.

Ví dụ một bài toán đơn giản sử dụng thư viện NumPy

Giả sử bạn có một danh sách điểm số của sinh viên trong một lớp học và bạn muốn tính điểm trung bình của lớp đó bằng cách sử dụng thư viện NumPy.

Bước 1: Nhập thư viện NumPy:

import numpy as np

Bước 2: Tạo mảng điểm số của sinh viên:

diem_sinh_vien = np.array([8, 7, 9, 6, 8.5, 9.5, 7.5, 6.5, 8, 9])
bai-toan-don-gian-su-dung-thu-vien-numpy
Bài toán đơn giản sử dụng thư viện NumPy

Bước 3: Tính điểm trung bình

diem_trung_binh = np.mean(diem_sinh_vien)

Kết quả:

Điểm trung bình của lớp là: 8.0

Bước 4: In kết quả

print("Điểm trung bình của lớp là:", diem_trung_binh)

Tóm lại, NumPy không chỉ giúp chúng ta giải quyết các bài toán khoa học dữ liệu một cách dễ dàng mà còn là chìa khóa mở cánh cửa cho những khám phá sâu hơn về thế giới của xử lý số liệu. Nếu bạn là một người lập trình Python, NumPy sẽ là một người bạn đồng hành đáng tin cậy trong công việc của bạn.

Những câu hỏi thường gặp

NumPy ra đời khi nào?

Năm 2005, Travis Oliphant (một trong những nhà phát triển của NumPy) đã chuyển các chức năng của Numarray (một đối thủ của Numeric) sang Numeric. Phiên bản NumPy 1.0 được phát hành vào năm 2006.

Làm thế nào để cài đặt NumPy trong Python?

Bạn có thể cài đặt NumPy bằng lệnh pip trong Command Prompt hoặc Terminal bằng câu lệnh:

pip install numpy

pip install numpy

Tại sao NumPy là lựa chọn tối ưu cho Python?

NumPy được sử dụng trong Python vì có thể giúp cải thiện hiệu suất xử lý dữ liệu số so với việc sử dụng danh sách thông thường. Trong Python, chúng ta có thể sử dụng danh sách nhưng chúng sẽ bị chậm hơn trong quá trình xử lý dữ liệu lớn. NumPy được thiết kế để cung cấp một đối tượng mảng nhanh hơn lên đến 50 lần so với danh sách thông thường.

Ngoài ra, NumPy còn có khả năng mở rộng Python bằng cách cung cấp các cấu trúc dữ liệu phân tích tiên tiến, đảm bảo tính nhanh chóng khi thao tác với mảng và ma trận.

Có những lựa chọn nào có thể thay thế NumPy?

Nếu muốn tìm kiếm các thư viện thay thế hoặc bổ sung cho NumPy, bạn có thể tham khảo: Pandas, TensorFlow PyTorch, Dask, CuPy, Blaze,.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

Xem nhiều

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886