欢迎使用CSDN-markdown编辑器

来源:互联网 发布:卓讯云客宝mac破解版 编辑:程序博客网 时间:2024/06/01 23:14

简要说明

   argsort(a, axis=-1, kind='quicksort', order=None)   按照kin关键字指定的排序方式,对原数组按照从小到大的顺序进行排序,得到一个新的数组,将该数组中每个元素在原数组中的索引值代替该元素得到   

例子:

x = np.array(np.random.randint(1,100,6))# x:  array([15, 16, 18, 7, 83, 53])y = np.argsort(x)# 输出array([3, 0, 1, 2, 5, 4], dtype=int64)y_1 = sorted(x)# [7, 15, 16, 18, 53, 83]

解释

 可以看出,7在x中的索引值为3,         15在x中的索引值为0,         16在x中的索引值为1 简单的等价表达式:
     ls = []x_1 = list(x)for i in y_1:    ls.append(x.index(i))
参数解释
  axis指定排序的轴,默认axis=-1为最后一个轴  kind为排序方法, {'quicksort', 'mergesort', 'heapsort'}默认为快速排序

一般只关注参数axis,二维情况下,默认按行排序,若指定axis=0,则为按列排序关于axis更详细的解释

看一些例子
  `>>> x = np.array([[0, 3], [2, 2]])   >>> x    array([[0, 3],      [2, 2]])  # 按列排序  >>> np.argsort(x, axis=0)    array([[0, 1],           [1, 0]]) # 按行排序 >>> np.argsort(x, axis=1)      array([[0, 1],             [0, 1]]) `
# 找出数组中最大的3个数,并保持原来的顺序  x = np.array(np.random.randint(1,100,10))  # array([78, 68, 79, 69, 77, 49, 28, 73, 69, 76])  x[sorted(np.argsort(x)[-3:])]  # array([78, 79, 76])  # 首先利用argsort()将元素排序,利用切片,得到最大的3个元素的索引值,在将索引值排序,利用numpy数组索引方式取出所要求的值
原创粉丝点击