Numpy NP.argsort

Numpy NP.argsort
A função argsort () em Numpy permite que você execute uma classificação indireta de uma matriz ao longo de um eixo especificado usando o algoritmo definido.

Vamos explorar como trabalhar com a função numpy argsort ().

Sintaxe da função numpy argsort ()

A sintaxe da função e os parâmetros são mostrados no seguinte:

Numpy.argsort (a, eixo =- 1, tipo = nenhum, ordem = nenhum)

Parâmetros
Os parâmetros são definidos de acordo com suas seguintes funções:

  1. a - refere -se à matriz de entrada.
  2. eixo - Especifica ao longo do qual o eixo para classificar a matriz de entrada. O valor é definido como -1, que usa o último índice. Defina o parâmetro do eixo para nenhum, se você quiser achatar a matriz.
  3. tipo - especifica o algoritmo de classificação. Os valores aceitáveis ​​incluem 'Quicksort', 'Mergesort', 'Heapsort' e 'estável'. Por padrão, a função usará um algoritmo de classificação do Quicksort.
  4. ordem - define a ordem sob a qual comparar os campos.

Valor de retorno da função
A função retorna uma variedade de índices da matriz classificada de acordo com os parâmetros definidos.

Exemplo 1 - Classificação de matriz achatada

O exemplo a seguir mostra como achatar e classificar a matriz especificando o parâmetro do eixo como "nenhum".

# importar numpy
importar numpy como np
arr = [0,1,5,3,9,6,7,4,2,8]
print ("Matriz não classificada:", arr)
Print (F "Matriz classificada: np.argsort (arr, eixo = nenhum) ")

O código anterior retorna uma matriz com os índices da matriz classificada. Um exemplo de saída é como mostrado abaixo:

Array não classificado: [0, 1, 5, 3, 9, 6, 7, 4, 2, 8]
Matriz classificada: [0 1 8 3 7 2 5 6 9 4]

Exemplo 2 - Corrente de matriz achatada (algoritmos diferentes)

Considere o exemplo abaixo que mostra como classificar uma matriz achatada usando vários algoritmos de classificação:

arr = [0,1,5,3,9,6,7,4,2,8]
Quick_sort = np.argsort (arr, eixo = nenhum, gentil = 'Quicksort')
merge_sort = np.argsort (arr, eixo = nenhum, tipo = 'Mergesort')
heap_sort = np.argsort (arr, eixo = nenhum, tipo = 'heapsort')
estável = np.argsort (arr, eixo = nenhum, tipo = 'heapsort')
print (f "QuickSort: Quick_Sort \ n Mergesort: Merge_sort \ n heapsort: heap_sort \ n estábulo: stable")

O código anterior utiliza vários algoritmos de classificação e retorna os índices de matriz resultantes.

A seguir, é apresentado um exemplo de saída:

Quicksort: [0 1 8 3 7 2 5 6 9 4]
mesclar: [0 1 8 3 7 2 5 6 9 4]
heapsort: [0 1 8 3 7 2 5 6 9 4]
estábulo: [0 1 8 3 7 2 5 6 9 4]

Exemplo 3 - Classifique a matriz 2D ao longo de vários eixos

Vejamos um exemplo para classificar uma matriz 2D ao longo dos vários eixos.

Imprimir (eixo f "0: np.argsort (arr, eixo = 0) ")

A matriz de retorno é a seguinte:

eixo 0: [[1 1 1]
[0 0 0]]

Para classificar ao longo do eixo 1, aplique o seguinte código:

Print (F "eixo 1: np.argsort (arr, eixo = 1) ")

Isso deve retornar a:

eixo 1: [[2 1 0]
[2 1 0]]

Conclusão

Este artigo serve como um guia sobre como usar a função argsort () em Numpy para classificar uma matriz ao longo de um eixo específico usando vários algoritmos. Mais tutoriais estão disponíveis na dica do Linux.