numpy.argsort()函数用于使用kind关键字指定的算法沿给定轴执行间接排序。它返回一个与arr形状相同的索引数组,该数组将对该数组进行排序。
用法: numpy.argsort(arr, axis=-1, kind=’quicksort’, order=None)
参数:
arr :[数组]输入数组。
axis :[int或None]要排序的轴。如果为None,则在排序之前将数组展平。默认值为-1,它沿着最后一个轴排序。
kind :[“快速排序”,“合并排序”,“堆排序”]选择算法。默认值为“快速排序”。
order :[str或str的列表]当arr是定义了字段的数组时,此参数指定要比较第一个,第二个等的字段。
Return :[index_array,ndarray]沿指定轴对arr进行排序的索引数组。如果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])
输出:
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)
输出:
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]]
相关用法
注:本文由纯净天空筛选整理自jana_sayantan大神的英文原创作品 numpy.argsort() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。