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=[('x', ' <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="('x','y'))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[('x', ' <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 'a' using np.array() function with dtype=[('x', ' <i4'), ('y', ' <i4')].< li> <li>We have declared the variables 'b' and 'c' and assigned the returned value of np.argsort() function.</li> <li>We have passed the array 'a' and order as an argument in the function.</li> <li>Lastly, we tried to print the value of 'b' and 'c'.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[('x', ' <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>