Hướng dẫn dùng numpy argsort python

Mô-đun NumPy cung cấp một hàm argsort (), trả về các chỉ số sẽ sắp xếp một mảng.

Mô-đun NumPy cung cấp một hàm để thực hiện sắp xếp gián tiếp cùng với trục đã cho với sự trợ giúp của thuật toán được chỉ định bởi từ khóa. Hàm này trả về một mảng các chỉ số có cùng hình dạng với ‘a’, sẽ sắp xếp mảng.

Các bài viết liên quan:

Cú pháp

numpy.argsort (a, axis = -1, kind = None, order = None)

Tham số

Đây là các tham số sau trong hàm numpy.argsort ():

  1. a: array_like

Tham số này xác định mảng nguồn mà chúng ta muốn sắp xếp.

  1. axis: int hoặc None (tùy chọn)

Tham số này xác định trục mà quá trình sắp xếp được thực hiện. Theo mặc định, trục là -1. Nếu chúng ta đặt tham số này thành Không, thì mảng phẳng sẽ được sử dụng.

  1. kind: {‘quicksort’, ‘mergesort’, ‘heapsort’, ‘ổn định’} (tùy chọn)

Tham số này xác định thuật toán sắp xếp. Theo mặc định, thuật toán là quicksort. Cả hai hợp nhất và ổn định đều đang sử dụng sắp xếp thời gian dưới các vỏ bọc. Việc triển khai thực tế sẽ thay đổi theo kiểu dữ liệu. Tùy chọn hợp nhất được giữ lại để tương thích ngược.

  1. order: str hoặc danh sách str (tùy chọn)

Nếu ‘a’ là một mảng có các trường được xác định, thì đối số này chỉ định trường nào sẽ so sánh đầu tiên, thứ hai, v.v. Trường đơn lẻ có thể được chỉ định dưới dạng một chuỗi và không phải tất cả các trường đều cần phải được chỉ định. Nhưng các trường không xác định vẫn sẽ sử dụng, theo thứ tự mà chúng xuất hiện trong loại dtype, để phá vỡ các mối quan hệ.

Returns: index_array: ndarray, int

Hàm này trả về một mảng chỉ số sắp xếp ‘a’ cùng với trục được chỉ định. Nếu ‘a’ là 1-D, [index_array] mang lại ‘a’ được sắp xếp. Nói chung hơn, np.take_along_axis (arr1, index_array, axis = axis) luôn mang lại ‘a’ được sắp xếp, bất kể kích thước.

Ví dụ 1: np.argsort ()

import numpy as np  
a=np.array([456,11,63])  
a  
b=np.argsort(a)  
b  

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.array ().
  • Chúng ta đã khai báo biến ‘b’ và gán giá trị trả về của hàm np.argsort ().
  • Chúng tôi đã chuyển mảng ‘a’ trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của b.

Trong đầu ra, một ndarray đã được hiển thị có chứa các chỉ số (cho biết vị trí của phần tử đối với mảng được sắp xếp) và dtype.

Output:

Hướng dẫn dùng numpy argsort python

Ví dụ 2: Đối với mảng 2-D (sắp xếp dọc theo trục đầu tiên (xuống))

import numpy as np  
a = np.array([[0, 5], [3, 2]])  
indices = np.argsort(a, axis=0)    
indices  

Output:

Ví dụ 3: Đối với mảng 2-D (thay thế của trục = 0)

import numpy as np  
a = np.array([[0, 5], [3, 2]])  
indices = np.argsort(a, axis=0)  
indices  
np.take_along_axis(a, indices, axis=0)  

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng 2-D ‘a’ bằng cách sử dụng hàm np.array ().
  • Chúng tôi đã khai báo các chỉ số biến và gán giá trị trả về của hàm np.argsort ().
  • Chúng ta đã chuyển mảng 2-D ‘a’ và trục là 0.
  • Tiếp theo, chúng tôi sử dụng hàm take_along_axis () và chuyển mảng nguồn, chỉ số và trục.
  • Hàm này đã trả về mảng 2-D đã được sắp xếp.
  • Trong đầu ra, một mảng 2-D với các phần tử được sắp xếp đã được hiển thị.

Output:

Ví dụ 4: Đối với mảng 2-D (sắp xếp dọc theo trục cuối cùng (ngang))

import numpy as np  
a = np.array([[0, 5], [3, 2]])  
indices = np.argsort(a, axis=1)    
indices  

Output:

Ví dụ 5: Đối với mảng 2-D (thay thế của trục = 1)

import numpy as np  
a = np.array([[0, 5], [3, 2]])  
indices = np.argsort(a, axis=1)  
indices  
np.take_along_axis(a, indices, axis=1)  

Output:

Ví dụ 6: Đối với mảng N-D

import numpy as np  
a = np.array([[0, 5], [3, 2]])  
indices = np.unravel_index(np.argsort(a, axis=None), a.shape)  
indices  
a[indices]  # same as np.sort(a, axis=None)  

Output:

Trong đoạn code trên

  • Chúng tôi đã nhập numpy với tên bí danh np.
  • Chúng tôi đã tạo một mảng 2-D ‘a’ bằng cách sử dụng hàm np.array ().
  • Chúng tôi đã khai báo một biến ‘chỉ số’ và gán giá trị trả về của hàm np.unravel_index ().
  • Chúng ta đã chuyển hàm np.argsort () và hình dạng của mảng ‘a’.
  • Chúng ta đã chuyển mảng 2-D ‘a’ và trục là 1 trong hàm argsort ().
  • Tiếp theo, chúng tôi đã cố gắng in giá trị của các chỉ số và [chỉ số].

Trong đầu ra, một mảng N-D với các phần tử được sắp xếp đã được hiển thị.

Ví dụ 7: Sắp xếp bằng các phím

import numpy as np  
a= np.array([(0, 5), (3, 2)], dtype=[('x', '

Output:

Trong đoạn code trên

  • Chúng tôi đã nhập numpy với tên bí danh np.
  • Chúng tôi đã tạo một mảng 2-D ‘a’ bằng cách sử dụng hàm np.array () với dtype = [(‘x’, ‘
  • Chúng tôi đã khai báo các biến ‘b’ và ‘c’ và chỉ định giá trị trả về
  • giá trị ned của hàm np.argsort ().
  • Chúng ta đã chuyển mảng ‘a’ và thứ tự làm đối số trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của ‘b’ và ‘c’.

Trong đầu ra, một mảng được sắp xếp đã được hiển thị với dtype = [(‘x’, ‘