python 中的 numpy.argsort()
哎哎哎:# t0]https://www . geeksforgeeks . org/num py-argsort-in-python/
numpy.argsort()
函数用于使用 kind 关键字指定的算法沿给定轴执行间接排序。它返回一个与 arr 形状相同的索引数组,用于对数组进行排序。
语法: numpy.argsort(arr,axis=-1,kind='quicksort ',order=None)
参数: arr : 【阵 _ 象】输入阵。 轴:【int 或 None】要排序的轴。如果为“无”,则数组在排序前被展平。默认值为-1,沿最后一个轴排序。 种类: ['快速排序',' mergesort ',' heap sort ']选择算法。默认值为“快速排序”。 顺序:【字符串或字符串列表】当 arr 是定义了字段的数组时,此参数指定首先比较哪些字段,其次比较哪些字段等。
返回:【index _ Array,ndarray】沿指定轴排序的索引数组。如果 arr 是一维的,那么 arr[index_array]返回一个排序后的 arr。
代码#1 :
# Python program explaining
# argpartition() function
import numpy as geek
# input array
in_arr = geek.array([ 2, 0, 1, 5, 4, 1, 9])
print ("Input unsorted array : ", in_arr)
out_arr = geek.argsort(in_arr)
print ("Output sorted array indices : ", out_arr)
print("Output sorted array : ", in_arr[out_arr])
Output:
Input unsorted array : [2 0 1 5 4 1 9]
Output sorted array indices : [1 2 5 0 4 3 6]
Output sorted array : [0 1 1 2 4 5 9]
代码#2 :
# Python program explaining
# argpartition() function
import numpy as geek
# input 2d array
in_arr = geek.array([[ 2, 0, 1], [ 5, 4, 3]])
print ("Input array : ", in_arr)
# output sorted array indices
out_arr1 = geek.argsort(in_arr, kind ='mergesort', axis = 0)
print ("Output sorteded array indices along axis 0: ", out_arr1)
out_arr2 = geek.argsort(in_arr, kind ='heapsort', axis = 1)
print ("Output sorteded array indices along axis 1: ", out_arr2)
Output:
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]]