关键词

详解Numpy argsort()(返回数组排序后的索引)函数的作用与使用方法

Numpy argsort() 是一个非常常用的函数,用于返回数组排序后的索引值。

使用方法

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

参数说明

  • a:需要排序的数组。

  • axis:沿着哪个轴排序,默认为最后一个维度。

  • kind:排序算法类型,可以为‘quicksort’, ‘mergesort’, ‘heapsort’。默认为 quicksort。

  • order:排序的元素名称。

返回值:一个数组,其中每个元素为a的索引值,以使每个维度值都是升序的。

实例说明

第一个例子是使用 argsort() 来对一维数组进行排序,以下是代码:

import numpy as np

arr = np.array([3, 1, 4, 2, 5])

idx = np.argsort(arr)

print(arr)
print(idx)

输出结果:

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

我们可以看到原始数组为 [3 1 4 2 5],而 argsort() 返回的是原始数组排序后的索引数组 [1 3 0 2 4],也就是索引为 1 的元素是排在第一位,索引为 3 的元素排在第二位,以此类推。

第二个例子是使用 argsort() 对二维数组进行排序,以下是代码:

import numpy as np

arr = np.array([[3, 1], [4, 2], [5, 0]])

idx = np.argsort(arr, axis=0)

print(arr)
print(idx)

输出结果:

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

[[0 0]
 [1 1]
 [2 2]]

我们可以看到原始数组为一个 3 行 2 列的二维数组,而 argsort() 返回的是原始数组在轴 0(竖直方向)上排序后的索引数组 [0 1 2],这里由于做了二维排序,所以返回的是每个元素在排序后行号的索引值矩阵。即矩阵最左上角元素在排序后是原矩阵第 0 行第 0 列元素,所以该位置的索引值是 [0, 0]。以此类推,矩阵第二行第二列元素排序后是矩阵第二行第二列元素,所以索引值为 [2, 2]。

以上就是 argsort() 的使用方法和实例展示,通过不同维度的数据排序,我们发现 argsort() 能够帮助我们快速对数据进行排序,可以提高我们对数据的操作效率。

本文链接:http://task.lmcjl.com/news/17027.html

展开阅读全文