Variaciones en diferentes técnicas de clasificación en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *