numpy.argpartition() A função é usada para criar uma cópia indireta particionada da matriz de entrada com seus elementos reorganizados de tal forma que o valor do elemento na k-ésima posição está na posição que estaria em uma matriz classificada. Todos os elementos menores que o k-ésimo elemento são movidos antes deste elemento e todos iguais ou maiores são movidos para trás dele. A ordem dos elementos nas duas partições é indefinida. Ele retorna uma matriz de índices da mesma forma que arr, ou seja, arr[index_array] produz uma partição de arr.

Sintaxe: numpy.argpartition (arr, kth, axis = -1, kind = 'introselect', order = None)

Parâmetros:
arr: [array_like] Matriz de entrada.
kth: [int ou seqüência de ints] Índice do elemento pelo qual particionar.
eixo: [int ou Nenhum] Eixo ao longo do qual classificar. Se nenhum, a matriz é achatada antes da classificação. O padrão é -1, que classifica ao longo do último eixo.
tipo: algoritmo de seleção. O padrão é 'introselect'.
order: [str ou list of str] Quando arr é uma matriz com campos definidos, este argumento especifica quais campos comparar primeiro, segundo, etc.

Retorno: [index_array, ndarray] Matriz de índices que dividem ao longo do eixo especificado.

Código # 1:



   
import numpy as geek 
in_arr = geek.array([[ 2, 01], [ 5, 4, 9] ]) 
print ("Input array : \n", in_arr)  
  
out_arr = geek.argpartition(in_arr, 1, axis = 1) 
print ("Output partitioned array indices :\n ", out_arr) 
Resultado:
Matriz de entrada:
 [[2 0 1]
 [5 4 9]]
Índices de matriz particionada de saída:
  [[1 2 0]
 [1 0 2]]

 
Código # 2:

   
import numpy as geek 
in_arr = geek.array([ 2, 01, 5, 4, 3]) 
print ("Input array : ", in_arr)  
  
out_arr = geek.argpartition(in_arr, (0, 2)) 
print ("Output partitioned array indices: ", out_arr) 
Resultado:
Matriz de entrada: [2 0 1 5 4 3]
Índices de matriz particionada de saída: [1 2 0 3 4 5]