Todos estos son tipos diferentes de técnicas de clasificación que se comportan de manera muy diferente. Estudiemos qué técnica funciona cómo y cuál usar.
Sea ‘a’ una array numpy
- a.sort()
(i) Ordena la array en el lugar y devuelve Ninguno
(ii) El tipo de retorno es Ninguno
(iii) Ocupa menos espacio. No se crea ninguna copia, ya que ordena directamente la array original
(iv) Más rápido que ordenado (a)# Python code to sort an array in-place
# using a.sort
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
7
,
4
,
3
,
6
])
# unsorted array print
print
(
'Original array:\n'
, a)
# Return type is None
print
(
'Return type:'
, a.sort())
# Sorted array output
print
(
'Original array sorted->'
, a)
OUTPUT: For a.sort() Original array: [9 3 1 7 4 3 6] Return type: None Original array sorted-> [1 3 3 4 6 7 9]
- sorted(a)
(i) Crea una nueva lista a partir de la anterior y devuelve la nueva, sorted
(ii) El tipo de devolución es una lista
(iii) Ocupa más espacio ya que se crea una copia de la array original y luego se realiza la clasificación
(iv) Más lento que a.sort()# Python code to create a sorted copy using
# sorted()
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
7
,
4
,
3
,
6
])
# unsorted array print
print
(
'Original array:\n'
, a)
b
=
sorted
(a)
# sorted list returned to b, b type is
# <class 'list'>
print
(
'New array sorted->'
, b)
# original array no change
print
(
'Original array->'
, a)
OUTPUT:a.sorted() Original array: [9 3 1 7 4 3 6] New array sorted-> [1, 3, 3, 4, 6, 7, 9] Original array-> [9 3 1 7 4 3 6]
- np.argsort(a)
(i) Devuelve los índices que ordenarían una array
(ii) El tipo de retorno es una array numpy
(iii) Ocupa espacio a medida que se devuelve una nueva array de índices ordenados# Python code to demonstrate working of np.argsort
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
7
,
4
,
3
,
6
])
# unsorted array print
print
(
'Original array:\n'
, 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)
OUTPUT:np.argsort(a) Original array: [9 3 1 7 4 3 6] Sorted indices of original array-> [2 1 5 4 6 3 0] Sorted array-> [1 3 3 4 6 7 9]
- np.lexsort((b, a))
(i) Realizar una ordenación indirecta usando una secuencia de claves
(ii) Ordenar por a, luego por b
(iii) Tipo de retorno ndarray of ints Array de índices que ordenan las claves a lo largo del especificado eje
(iv) Ocupa espacio ya que se devuelve una nueva array de índices ordenados por pares.# Python code to demonstrate working of
# np.lexsort()
import
numpy as np
# Numpy array created
a
=
np.array([
9
,
3
,
1
,
3
,
4
,
3
,
6
])
# First column
b
=
np.array([
4
,
6
,
9
,
2
,
1
,
8
,
7
])
# Second column
print
(
'column a, column b'
)
for
(i, j)
in
zip
(a, b):
print
(i,
' '
, j)
ind
=
np.lexsort((b, a))
# Sort by a then by b
print
(
'Sorted indices->'
, ind)
OUTPUT:np.lexsort((b, a)) 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]
Este artículo es una contribución de SHAURYA UPPAL . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA