numpy.argsort(a, axis=-1, kind=None, order=None)
[source]-
Devuelve los índices que ordenarían array.
Realice una ordenación indirecta a lo largo del eje dado utilizando el algoritmo especificado por el
kind
palabra clave. Devuelve un array de índices de la misma forma quea
que indexan los datos a lo largo del eje dado en orden ordenado.- Parámetros
-
aarray_like
-
Matriz para ordenar.
axisint or None, optional
-
Eje por el que ordenar. El valor predeterminado es -1 (el último eje). Si ninguno, el aplanado array se utiliza.
kind‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’, optional
-
Algoritmo de clasificación. El valor predeterminado es ‘clasificación rápida’. Tenga en cuenta que tanto ‘estable’ como ‘mergesort’ usan timsort oculto y, en general, la implementación real variará con el tipo de datos. La opción ‘mergesort’ se conserva para compatibilidad con versiones anteriores.
Modificado en la versión 1.15.0 .: Se agregó la opción ‘estable’.
orderstr or list of str, optional
-
Cuando
a
es un array con los campos definidos, este argumento especifica qué campos comparar primero, segundo, etc. Un solo campo se puede especificar como un string, y no es necesario especificar todos los campos, pero los campos no especificados se seguirán utilizando, en el orden en que aparecen en el tipo d, para romper los empates.
- Devoluciones
-
index_arrayndarray, int
-
Matriz de índices de ese tipo
a
a lo largo del especificadoaxis
. Sia
es unidimensional,a[index_array]
produce un ordenadoa
. Más generalmente,np.take_along_axis(a, index_array, axis=axis)
siempre rinde el ordenadoa
, independientemente de la dimensionalidad.
Ver también
sort
-
Describe los algoritmos de clasificación utilizados.
lexsort
-
Ordenación estable indirecta con múltiples keys.
ndarray.sort
-
Orden en el lugar.
argpartition
-
Ordenamiento parcial indirecto.
take_along_axis
-
Solicitar
index_array
de argsort a un array como si llamara a sort.
Notas
Ver
sort
para obtener notas sobre los diferentes algoritmos de clasificación.A partir de NumPy 1.4.0
argsort
funciona con matrices reales / complejas que contienen valores nan. El orden de clasificación mejorado está documentado ensort
.Ejemplos de
Unidimensional array:
>>> x = np.array([3,1,2])>>> np.argsort(x) array([1,2,0])
Bidimensional array:
>>> x = np.array([[0,3],[2,2]])>>> x array([[0,3],[2,2]])
>>> ind = np.argsort(x, axis=0)# sorts along first axis (down)>>> ind array([[0,1],[1,0]])>>> np.take_along_axis(x, ind, axis=0)# same as np.sort(x, axis=0) array([[0,2],[2,3]])
>>> ind = np.argsort(x, axis=1)# sorts along last axis (across)>>> ind array([[0,1],[0,1]])>>> np.take_along_axis(x, ind, axis=1)# same as np.sort(x, axis=1) array([[0,3],[2,2]])
Índices de los elementos ordenados de una dimensión N array:
>>> ind = np.unravel_index(np.argsort(x, axis=None), x.shape)>>> ind (array([0,1,1,0]), array([0,0,1,1]))>>> x[ind]# same as np.sort(x, axis=None) array([0,2,2,3])
Ordenar con keys:
>>> x = np.array([(1,0),(0,1)], dtype=[('x','
),('y',' )])>>> x array([(1,0),(0,1)], dtype=[('x',' ),('y',' )]) >>> np.argsort(x, order=('x','y')) array([1,0])
>>> np.argsort(x, order=('y','x')) array([0,1])
Ejemplo de numpy.argsort ()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)