logo

numpy.argsort() em Python

O módulo NumPy fornece uma função argsort(), que retorna os índices que classificariam um array.

O módulo NumPy fornece uma função para realizar uma classificação indireta junto com um determinado eixo com a ajuda do algoritmo especificado pela palavra-chave. Esta função retorna um array de índices com o mesmo formato de 'a', que classificaria o array.

Sintaxe

 numpy.argsort(a, axis=-1, kind=None, order=None) 

Parâmetros

Estes são os seguintes parâmetros na função numpy.argsort():

decodificação js base64

a: array_like

Este parâmetro define o array de origem que queremos classificar.

eixo: int ou None (opcional)

Este parâmetro define o eixo ao longo do qual a classificação é realizada. Por padrão, o eixo é -1. Se definirmos este parâmetro como None, o array nivelado será usado.

tipo: {'quicksort','mergesort','heapsort','stable'}(opcional)

Este parâmetro define o algoritmo de classificação. Por padrão, o algoritmo é ordenação rápida . Ambos mesclagem e estábulo estão usando a classificação por tempo nos bastidores. A implementação real irá variar de acordo com o tipo de dados. O mesclagem a opção é mantida para compatibilidade com versões anteriores.

mysql lista todos os usuários

ordem: str ou lista de str (opcional)

Se 'a' for uma matriz com campos definidos, este argumento especifica quais campos comparar primeiro, segundo, etc. O campo único pode ser especificado como uma string e nem todos os campos precisam ser especificados. Mas os campos não especificados ainda serão usados, na ordem em que aparecem no dtype, para desempate.

Retorna: index_array: ndarray, int

Esta função retorna uma matriz de índices que classificam 'a' junto com o eixo especificado. Se 'a' for 1-D, a[index_array] produzirá um 'a' classificado. De forma geral, np.take_along_axis(arr1, index_array, eixo=eixo) sempre produz o 'a' classificado, independentemente da dimensionalidade.

Exemplo 1: np.argsort()

 import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b 

No código acima

tutorial de reação js
  • Importamos numpy com o nome alternativo np.
  • Criamos um array 'a' usando a função np.array().
  • Declaramos a variável 'b' e atribuímos o valor retornado da função np.argsort().
  • Passamos o array 'a' na função.
  • Por último, tentamos imprimir o valor de b.

Na saída, foi mostrado um ndarray que contém os índices (indica a posição do elemento para o array classificado) e dtype.

Saída:

 array([456, 11, 63]) array([1, 2, 0], dtype=int64) 

Exemplo 2: Para matriz 2-D (classifica ao longo do primeiro eixo (para baixo))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices 

Saída:

 array([[0, 1], [1, 0]], dtype=int64) 

Exemplo 3: Para array 2-D (alternativa de eixo = 0)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices np.take_along_axis(a, indices, axis=0) 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos um array 2-D 'a' usando a função np.array().
  • Declaramos índices de variáveis ​​​​e atribuímos o valor retornado da função np.argsort().
  • Passamos a matriz 2-D 'a' e o eixo como 0.
  • Em seguida, usamos a função take_along_axis() e passamos o array de origem, os índices e o eixo.
  • Esta função retornou o array 2-D classificado.

Na saída, um array 2-D com elementos classificados foi mostrado.

Saída:

 array([[0, 2], [3, 5]]) 

Exemplo 4: Para array 2-D (classifica ao longo do último eixo (através))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices 

Saída:

 array([[0, 1], [1, 0]], dtype=int64) 

Exemplo 5: Para array 2-D (alternativa de eixo = 1)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices np.take_along_axis(a, indices, axis=1) 

Saída:

 array([[0, 2], [3, 5]]) 

Exemplo 6: Para matriz ND

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.unravel_index(np.argsort(a, axis=None), a.shape) indices a[indices] # same as np.sort(a, axis=None) 

Saída:

scanner java
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos um array 2-D 'a' usando a função np.array().
  • Declaramos uma variável 'índices' e atribuímos o valor retornado da função np.unravel_index().
  • Passamos a função np.argsort() e o formato do array 'a'.
  • Passamos o array 2-D 'a' e o eixo como 1 na função argsort().
  • A seguir, tentamos imprimir o valor dos índices e a[índices].

Na saída, um array ND com elementos classificados foi mostrado.

Exemplo 7: Classificação com chaves

 import numpy as np a= np.array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="(&apos;x&apos;,&apos;y&apos;))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) array([0, 1], dtype="int64)" array([1, 0], < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created a 2-D array &apos;a&apos; using np.array() function with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')].< li> <li>We have declared the variables &apos;b&apos; and &apos;c&apos; and assigned the returned value of np.argsort() function.</li> <li>We have passed the array &apos;a&apos; and order as an argument in the function.</li> <li>Lastly, we tried to print the value of &apos;b&apos; and &apos;c&apos;.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>