在这里,我们将使用argsort()来获取索引,这些索引将按升序对原始数组进行排序。现在,为了获得按降序排序数组的索引,我们首先使用-arr对数组求反,然后对求反后的数组使用argsort()来按降序获得索引。 importnumpyasnparr=np.array([8,2,5,7,10,4])# get the indices that would sort the array in ascending ord...
>>> np.argsort(x) #按升序排列 array([1, 2, 0]) >>> np.argsort(-x) #按降序排列 array([0, 2, 1]) >>> x[np.argsort(x)] #通过索引值排序后的数组 array([1, 2, 3]) >>> x[np.argsort(-x)] array([3, 2, 1]) 另一种方式实现按降序排序: >>> a = x[np.argsort(x)]...
13.一维数组降序排序【numpy】 # # 降序排序num_list=np.array([1,8,2,3,10,4,5])index_list=np.argsort(-num_list)# 加负号按降序排序print(index_list)# [4 1 6 5 3 2 0] 14.二维数组排序【numpy】 num_list=np.array([[1,8,2,9],[8,2,4,5],[2,3,7,4],[1,2,3,5]])ordere...
可以看到,np.argsort(a)并不会改变a的顺序,而是会返回一个下标数组i,使得a[i]正序排序。如果要降序排序,则可以使用np.argsort(-a)。无论是升序还是降序,遇到同样的值时都是下标小的在前(比如例子中的a[2]和a[5])。 同样,a.argsort()也可以起到相同的作用: >>> import numpy as np >...
argsort(a, axis=-1, kind='quicksort', order=None) Returns the indices that would sort an array. 从中可以看出argsort函数返回的是数组值从小到大的索引值 Examples --- One dimensional array:一维数组 >>> x = np.array([3, 1, 2])>>>np.argsort(x) array([...
对于较大的数组,argsort 占主导地位,没有显着的时序差异 >>> avgDists = np.random.rand(1000) >>> n = 300 >>> timeit (-avgDists).argsort()[:n] 21.9 µs ± 51.2 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each) >>> timeit avgDists.argsort()[::-1][:n] 21.7...
>>> x[np.argsort(-x)] array([3, 2, 1]) 另一种方式实现按降序排序: >>> a = x[np.argsort(x)] >>> a array([1, 2, 3]) >>> a[::-1] array([3, 2, 1]) 另外说到排序,还有两个常用的函数sort和sorted,详细内容请看:http://maoersong.blog.163.com/blog/static/1715573512014241...
在这一步中,np.argsort(array)会返回一个按照升序排列的索引数组,[::-1]会将这个数组反转,从而得到按照降序排列的索引数组。 步骤四:根据排序后的索引数组重排原始数组 现在我们已经有了排序后的索引数组,我们可以使用这个索引数组来重排原始数组,从而实现按照降序排列的功能。
NumPy中通过ndarray.argsort()函数,实现获取排序后的索引数组的需求:如果需要对多个键进行排序,或者多个数组进行联合排序,可以使用NumPy中的np.lexsort()函数。还是通过代码来具体查看:在使用np.lexsort()进行联合排序时,需要注意,传给函数的多个数组构成的列表或者元组,排序时,会首先按照最后一个数组进行排序,...