如何在Python中使用NumPy获得排序后的数组的索引

如何在Python中使用NumPy获得排序后的数组的索引

我们可以在argsort()方法的帮助下获得一个给定数组的排序元素的索引。这个函数用于使用kind关键字指定的算法沿着给定的轴进行间接排序。它返回一个与arr相同形状的索引数组,该数组将被排序。

语法:

numpy.argsort(arr, axis=-1, kind=’quicksort’, order=None)

示例 1:

import numpy as np
  
  
# Original array
array = np.array([10, 52, 62, 16, 16, 54, 453])
print(array)
  
# Indices of the sorted elements of a 
# given array
indices = np.argsort(array)
print(indices)

输出:

[ 10  52  62  16  16  54 453]
[0 3 4 1 5 2 6]

示例 2:

import numpy as np
  
  
# Original array
array = np.array([1, 2, 3, 4, 5])
print(array)
  
# Indices of the sorted elements of 
# a given array
indices = np.argsort(array)
print(indices)

输出:

[1 2 3 4 5]
[0 1 2 3 4]

示例 3:

import numpy as np 
  
  
# input 2d array 
in_arr = np.array([[ 2, 0, 1], [ 5, 4, 3]]) 
print ("Input array :\n", in_arr)  
    
# output sorted array indices 
out_arr1 = np.argsort(in_arr, kind ='mergesort', axis = 0) 
print ("\nOutput sorteded array indices along axis 0:\n", out_arr1) 
  
out_arr2 = np.argsort(in_arr, kind ='heapsort', axis = 1) 
print ("\nOutput sorteded array indices along axis 1:\n", out_arr2) 

输出:

Input array :
 [[2 0 1]
 [5 4 3]]

Output sorteded array indices along axis 0:
 [[0 0 0]
 [1 1 1]]

Output sorteded array indices along axis 1:
 [[1 2 0]
 [2 1 0]]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程