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])的想法了
也就是原数组的位置不要动。
>>> 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()究竟如何返回的?的主要内容,如果未能解决你的问题,请参考以下文章