python argsort()究竟如何返回的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python argsort()究竟如何返回的?相关的知识,希望对你有一定的参考价值。

>>> x = np.array([3, 1, 2])

>>> np.argsort(x)

array([1, 2, 0])
为啥不是
array(2, 0, 1])呢?
哦,我似乎明白了,应该是这样来解释:
x(1)=1,x(2)=2,x(0)=3
(x(1),x(2),x(0))成升序
于是结果就是
([1,2,0])

而不要看成是
3->x(2),1->x(0), 2->x(1)

这样就会有([2, 0, 1])的想法了

也就是原数组的位置不要动。

参考技术A 在Python中使用help帮助
>>> import numpy
>>> help(numpy.argsort)
Help on function argsort in module numpy.core.fromnumeric:

argsort(a, axis=-1, kind='quicksort', order=None)
Returns the indices that would sort an array.

Perform an indirect sort along the given axis using the algorithm specified
by the `kind` keyword. It returns an array of indices of the same shape as
`a` that index data along the given axis in sorted order.

从中可以看出argsort函数返回的是数组值从小到大的索引值
Examples
--------

>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0])
--------
argsort函数返回的是数组值从小到大的索引值

[3, 1, 2]从小到大为[1,2,3],期对应的索引为[1,2,0]本回答被提问者和网友采纳
参考技术B 使用K近邻算法进行排序
K近邻算法:
优点:精度高、对异常值不敏感、无数据输入假定
缺点:计算复杂度高、空间复杂度高。
适用数据范围:数值型和标称型
K近邻算法原理:
输入一个新的没有标签的数据后,将新数据的每个特征值与训练样本集中数据的对应的特征进行比较,选择训练样本数据集中前K个最相似的数据,最后,选择K个最相似数据中出现次数最多的分类,作为新数据的分类。

python中argsort的使用

argsort是模块numpy中的函数,用于将数组里的元素进行排序。注意这个地方返回的是索引

argsort(a, axis=-1, kind=‘quicksort‘, order=None)
    Parameters
    ----------
    a : array_like
        Array to sort.
    axis : int or None, optional
        Axis along which to sort.  The default is -1 (the last axis). If None,
        the flattened array is used.
    kind : {‘quicksort‘, ‘mergesort‘, ‘heapsort‘}, optional
        Sorting algorithm.
    order : list, optional
        When `a` is an array with fields defined, this argument specifies
        which fields to compare first, second, etc.  Not all fields need be
        specified.
    
    Returns
    -------
    index_array : ndarray, int
        Array of indices that sort `a` along the specified axis.
        In other words, ``a[index_array]`` yields a sorted `a`.
     
    Examples
    --------
    One dimensional array:
    
    >>> x = np.array([3, 1, 2])
    >>> np.argsort(x)
    array([1, 2, 0])
    
    Two-dimensional array:
    
    >>> 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]])
    
    Sorting with keys:
    
    >>> x = np.array([(1, 0), (0, 1)], dtype=[(‘x‘, ‘<i4‘), (‘y‘, ‘<i4‘)])
    >>> x
    array([(1, 0), (0, 1)],
          dtype=[(‘x‘, ‘<i4‘), (‘y‘, ‘<i4‘)])
    
    >>> np.argsort(x, order=(‘x‘,‘y‘))
    array([1, 0])
    
    >>> np.argsort(x, order=(‘y‘,‘x‘))
    array([0, 1])


























































以上是关于python argsort()究竟如何返回的?的主要内容,如果未能解决你的问题,请参考以下文章

关于python中argsort()函数的使用

绕晕大多数Python初学者的argsort()函数

Python数组排序

撤消或反向 argsort(),python

python:argsort,将数组升序或降序,将矩阵每一行升序或降序,返回其索引

python中的反向排序和argsort