Một số hàm sắp xếp (Sort) phổ biến trong Numpy

Sắp xếp (Sort) là một thao tác phổ biến trong phân tích dữ liệu và lập trình. Nó liên quan đến việc sắp xếp các phần tử trong một tập hợp theo một thứ tự nhất định. NumPy, một thư viện cốt lõi cho tính toán khoa học trong Python, cung cấp nhiều hàm để sắp xếp mảng một cách hiệu quả. Hướng dẫn này trình bày nhiều cách tiếp cận để sắp xếp mảng trong NumPy, bao gồm cả kỹ thuật cơ bản và nâng cao. 

Sắp xếp (Sort)  một thao tác phổ biến trong phân tích dữ liệu lập trình. liên quan đến việc sắp xếp các phần tử trong một tập hợp theo một thứ tự nhất định. NumPy – thư viện cốt lõi cho tính toán khoa học trong Python, cung cấp nhiều hàm để sắp xếp mảng một cách hiệu quả.

Trong bài viết ngày hôm nay, UniTrain sẽ hướng dẫn bạn nhiều cách tiếp cận để sắp xếp mảng trong NumPy, bao gồm cả kỹ thuật bản nâng cao. 

NumPy.Sort() 

Để Sort các phần tử của mảng NumPy theo thứ tự nhất định, bạn có thể sử dụng hàm numpy.sort(). Bằng cách sử dụng hàm này, bạn có thể sắp xếp một mảng N chiều với bất kỳ kiểu dữ liệu nào. 

Cú pháp hàm Sort:

# Syntax of NumPy array sort()
numpy.sort(arr, axis= -1, kind=None, order=None)

Hàm này cho phép sử dụng bốn tham số sau: 

  • arr: Đây là mảng đầu vào mà bạn muốn sắp xếp. 
  • axis: Tham số này xác định trục mà việc sắp xếp sẽ được thực hiện. Nếu giá trị là None, mảng sẽ được làm phẳng (flatten) trước khi sắp xếp. Mặc định, tham số này là -1, tức là sắp xếp theo trục cuối cùng. 
  • order: Tham số này chỉ định các trường sẽ được so sánh trước. Nếu mảng có cấu trúc (nghĩa là có các trường được định nghĩa), thì đối số này xác định trường nào được sử dụng để sắp xếp. 
  • kind: Thuật toán sắp xếp. Mặc định là ‘quicksort’. Các lựa chọn khác bao gồm ‘mergesort’‘heapsort’.

Ví dụ:  

import numpy as np
array = np.array([12, 3, 7, 5, 9])
sorted_array = np.sort(array)# Sorts in ascending order
print(sorted_array)#Output:
[3 5 7 9 12]

Nếu mảng cần được sắp xếp theo thứ tự giảm dần, bạn có thể đảo ngược kết quả như sau:

import numpy as np
array = np.array([3, 9, 4, 1, 5])
sorted_array = np.sort(array)[::-1]# Sorts in ascending order and reverses for descending
print(sorted_array)#Output:
[9 5 4 3 1]

Sắp xếp mảng bằng Numpy.argsort()

Hàm numpy.argsort() trả về chỉ số của các phần tử trong mảng theo thứ tự sẽ sắp xếp được mảng theo thứ tự tăng dần. Điều này cho phép chúng ta tái sắp xếp dữ liệu dựa trên các chỉ số đó không làm thay đổi mảng gốc. 

import numpy as np

array = np.array([5, 2, 9, 1, 5])
sorted_indices = np.argsort(array)
print(sorted_indices)

#Output:
[3 1 0 4 2]

Sắp xếp mảng bằng Numpy.lexsort() 

Khi sắp xếp mảng có cấu trúc (structured array) theo nhiều tiêu chí, chúng ta có thể sử dụng hàm numpy.lexsort(). Một mảng có cấu trúc giống như một bảng, trong đó mỗi cột có thể chứa các kiểu dữ liệu khác nhau. Với numpy.lexsort(), chúng ta có thể Sort mảng dựa trên nhiều cột, bắt đầu từ cột đầu tiên và sử dụng các cột tiếp theo để quyết định thứ tự đối với những phần tử có giá trị giống nhau. 

a = [1, 5, 1, 4, 3, 4, 4] # Cột thứ nhất (key phụ)

b = [9, 4, 0, 4, 0, 2, 1] # Cột thứ hai (key chính)
ind = np.lexsort((b, a))

# Sắp xếp theo ‘a’ trước, nếu trùng thì so sánh theo ‘b’
print(ind)

#Out put:
array([2, 0, 4, 6, 5, 3, 1])

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu các tính năng mạnh mẽ của NumPy về Sort và các phép toán đơn nhất (unary operations), qua đó làm nổi bật tầm quan trọng của thư viện này trong việc xử lý dữ liệu hiệu quả.

NumPy là một thư viện thiết yếu cho tính toán số trong Python, cung cấp các công cụ mạnh mẽ để Sort mảng và thực hiện các phép tính theo từng phần tử một cách nhanh chóng. Hiệu suất vượt trội của NumPy so với các hàm dựng sẵn của Python khiến nó trở thành lựa chọn hàng đầu khi làm việc với các tập dữ liệu lớn, giúp các tác vụ phân tích dữ liệu trở nên trơn tru và hiệu quả hơn.

Cùng theo dõi Fanpage UniTrain để khám phá thêm nhiều thông tin hữu ích nhé.

Xem thêm:

Xử lý và trực quan hóa dữ liệu với Python

Nối các mảng dữ liệu trong Python

Thêm và Xóa phần tử trong Numpy

Bài viết liên quan
Focus Cell trong Excel – Tính năng giúp tăng khả năng điều hướng

Đã bao giờ bạn lạc trôi giữa hàng trăm dòng, hàng ngàn cột trên Excel… mà không biết mình đang ở đâu? Nếu “mất phương hướng” là cảm giác quen thuộc

Xem thêm
Trí tuệ nhân tạo AI là gì? Khái niệm, phân loại và vai trò trong cuộc sống

Trong thời đại cách mạng công nghiệp 4.0, trí tuệ nhân tạo AI đang trở thành một phần không thể thiếu trong nhiều lĩnh vực của cuộc sống. Từ các trợ

Xem thêm
Truy vấn lồng (Subquery) trong SQL – Bí kíp giúp xử lý và truy xuất dữ liệu với mức độ phức tạp cao

Truy vấn lồng (Subquery) là một trong những công cụ hiệu quả trong SQL, giúp xử lý và truy xuất dữ liệu với mức độ phức tạp cao hơn so với

Xem thêm
Hàm TRIMRANGE() – Hàm xóa giá trị trống “đỉnh” hơn cả TRIM.

Như bạn đã biết hàm TRIM() trong Excel giúp loại bỏ các ký tự trống (khoảng trắng). Tương tự vậy hàm TRIMRANGE() được sử dụng để xóa các giá trị trống khỏi một phạm vi

Xem thêm