美文网首页我爱编程
python numpy-argsort函数

python numpy-argsort函数

作者: KardelShaw | 来源:发表于2017-09-17 22:15 被阅读0次

文档说明(装逼用)

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.
    
    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 : str or list of str, optional
        When `a` is an array with fields defined, this argument specifies
        which fields to compare first, second, etc.  A single field can
        be specified as a string, and not all fields need be specified,
        but unspecified fields will still be used, in the order in which
        they come up in the dtype, to break ties.
    
    Returns
    -------
    index_array : ndarray, int
        Array of indices that sort `a` along the specified axis.
        If `a` is one-dimensional, ``a[index_array]`` yields a sorted `a`.
    
    See Also
    --------
    sort : Describes sorting algorithms used.
    lexsort : Indirect stable sort with multiple keys.
    ndarray.sort : Inplace sort.
    argpartition : Indirect partial sort.
    
    Notes
    -----
    See `sort` for notes on the different sorting algorithms.
    
    As of NumPy 1.4.0 `argsort` works with real/complex arrays containing
    nan values. The enhanced sort order is documented in `sort`.
    
    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])

只有第一个参数(输入数组)是必选,都是可选的(optional),它们的默认值已在函数定义中给出。这里暂时只说明参数axis,其他的以后用到再补充。

看两个例子就懂了

a = array([9, 8, 7, 6, 5, 4, 3, 1, 2])

print(a.argsort())

结果

[7, 8, 6, 5, 4, 3, 2, 1, 0]

数组a最小的数字是1,其索引为7,所以输出数组第一个元素为7;第二小的数字是2,其索引为8,所以输出数组第二个元素为8,以此类推。

Numbers作图

再举一个三维数组的例子(在应用方面三维数组比较少用,这里只是为了充分说明axis参数的作用)

b = array([[[0, 1, 2, 0, 1, 2], [1, 6, 3, 2, 5, 7]],
           [[0, 1, 2, 0, 1, 2], [8, 9, 1, 0, 2, 4]]])

print('{0}\n'.format(b.shape))
print('{0}\n'.format(b.argsort()))               //①
print('{0}\n'.format(b.argsort(axis=0)))         //②
print('{0}\n'.format(b.argsort(axis=1)))         //③
print('{0}\n'.format(b.argsort(axis=2)))         //④

结果

(2, 2, 6)

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

[[[0, 0, 0, 0, 0, 0],
  [0, 0, 1, 1, 1, 1]],
 [[1, 1, 1, 1, 1, 1],
  [1, 1, 0, 0, 0, 0]]]

[[[0, 0, 0, 0, 0, 0],
  [1, 1, 1, 1, 1, 1]],
 [[0, 0, 1, 0, 0, 0],
  [1, 1, 0, 1, 1, 1]]]

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

①不带参数,�此时我们在最深维度(第三维度),根据shape函数可知,有6个元素,所以我们要对每组的6个元素进行排序


Numbers作图

②axis=0,此时我们在第一维度,�根据shape函数可知,有2个元素,所以我们要对每组的2个元素进行排序

Numbers作图

③axis=1,此时我们在第二维度,根据shape函数可知,有2个元素,所以要对每组的2个元素进行排序

Numbers作图

④axis=2,与①同

相关文章

  • python numpy-argsort函数

    文档说明(装逼用) 只有第一个参数(输入数组)是必选,都是可选的(optional),它们的默认值已在函数定义中给...

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python高阶函数学习笔记

    python中的高阶函数是指能够接收函数作为参数的函数 python中map()函数map()是 Python 内...

  • Python学习笔记1

    Python注释 Python变量 Python运算符 Python输入输出 输入函数 输出函数(3.x) ...

  • Python:内置函数

    python的内置函数,匿名函数 内置函数 内置函数就是python给你提供的,拿来直接用的函数,比如print,...

  • 二级Python----Python的内置函数及标准库(DAY

    Python的内置函数 嵌入到主调函数中的函数称为内置函数,又称内嵌函数。 python的内置函数(68个) Py...

  • python3 range() 函数和 xrange() 函数

    python3 range 函数 python3 取消了 xrange() 函数,并且和 range() 函数合并...

  • 7、函数

    1、Python之什么是函数 2、Python之调用函数 Python内置了很多有用的函数,我们可以直接调用。 要...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

网友评论

    本文标题:python numpy-argsort函数

    本文链接:https://www.haomeiwen.com/subject/ovnesxtx.html