Clasificación de matrices NumPy | Cómo ordenar la matriz NumPy
Ordenar una matriz es un paso muy importante en el análisis de datos, ya que ayuda a ordenar los datos y facilita su búsqueda y limpieza.
En este tutorial aprenderemos cómo ordenar una matriz en NumPy . Puedes ordenar una matriz en NumPy:
- Usando la función np.sort()
- clasificación en línea
- ordenar a lo largo de diferentes ejes
- Usando la función np.argsort()
- Usando la función np.lexsort()
Usando la función ordenar ()
El método sort() ordena el elemento de una estructura de datos determinada (aquí matriz). Llame a la función de clasificación con el objeto de matriz para ordenar los elementos.
Hay dos casos de clasificación de matrices con el método sort():
- Ordenar la matriz NumPy en su lugar
- Ordenar matriz NumPy a lo largo de ejes
Cubriremos ambos métodos con un ejemplo a continuación:
Ordenar matriz in situ
Ordenar una matriz en su lugar significa ordenar directamente los elementos de la matriz original.
No crea una nueva copia de la matriz y consume mucha memoria.
Ejemplo
Usar el método sort() para ordenar elementos en la matriz NumPy en su lugar.
Python3
# importing libraries> import> numpy as np> > a> => np.array([> 12> ,> 15> ,> 10> ,> 1> ])> print> (> 'Array before sorting'> ,a)> a.sort()> print> (> 'Array after sorting'> ,a)> |
Producción:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
Ordenar matriz a lo largo de diferentes ejes
Este método crea una copia ordenada de la matriz NumPy dada.
Se utiliza principalmente en una matriz multidimensional cuando se desea ordenar según una dimensión determinada.
Ejemplo
Usando el método sort() para elementos en la matriz NumPy a lo largo del eje
Python3
# importing libraries> import> numpy as np> # sort along the first axis> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => 0> )> print> (> 'Along first axis :
'> , arr1)> # sort along the last axis> a> => np.array([[> 10> ,> 15> ], [> 12> ,> 1> ]])> arr2> => np.sort(a, axis> => -> 1> )> print> (> '
Along first axis :
'> , arr2)> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => None> )> print> (> '
Along none axis :
'> , arr1)> |
Producción:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
Usando argsort()
método argsort() es una forma indirecta de ordenar la matriz NumPy a lo largo de un eje determinado.
Devuelve un conjunto de índices eso ordenaría la matriz original en orden ascendente.
Ejemplo
Usando argsort() para ordenar elementos en la matriz NumPy
Python3
import> numpy as np> > # Numpy array created> a> => np.array([> 9> ,> 3> ,> 1> ,> 7> ,> 4> ,> 3> ,> 6> ])> > # unsorted array print> print> (> 'Original array:
'> , a)> > # Sort array indices> b> => np.argsort(a)> print> (> 'Sorted indices of original array->'> , b)> > # To get sorted array using sorted indices> # c is temp array created of same len as of b> c> => np.zeros(> len> (b), dtype> => int> )> for> i> in> range> (> 0> ,> len> (b)):> > c[i]> => a[b[i]]> print> (> 'Sorted array->'> , c)> |
Producción:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Matriz ordenada-> [1 3 3 4 6 7 9]
Usando secuencia de claves
Ordenar una matriz usando una secuencia de claves nos permite ordenar una matriz según múltiples criterios.
Puede utilizar este método con la función np.lexsort(). La función lexsort() devuelve una matriz de índices que ordenaría la matriz original.
Ejemplo
Obtenga una clasificación estable utilizando una secuencia de claves.
Python3
import> numpy as np> > # Numpy array created> # First column> a> => np.array([> 9> ,> 3> ,> 1> ,> 3> ,> 4> ,> 3> ,> 6> ])> > # Second column> b> => np.array([> 4> ,> 6> ,> 9> ,> 2> ,> 1> ,> 8> ,> 7> ])> print> (> 'column a, column b'> )> for> (i, j)> in> zip> (a, b):> > print> (i,> ' '> , j)> > # Sort by a then by b> ind> => np.lexsort((b, a))> print> (> 'Sorted indices->'> , ind)> |
Producción:
column a, column b 9 4 3 6 1 9 3 2 4 1 3 8 6 7 Sorted indices->[2 3 1 5 4 6 0]
Verifique también: Ordenar, buscar y contar en NumPy
Conclusión
Ordenar la matriz NumPy facilita la búsqueda de elementos duplicados, máximos y mínimos. Es una operación esencial de manipulación de datos, facilitando el trabajo con datos.
En este tutorial, hemos cubierto tres métodos sobre cómo ordenar una matriz en NumPy, es decir, sort(), argsort() y lexsort(). Todos estos métodos proporcionan diferentes funcionalidades para ordenar ndarray en NumPy. Hemos explicado los métodos en palabras sencillas con ejemplos para brindarle una comprensión completa del tema.