numpy.argpartition () in Python



numpy.argpartition() is used to create an indirect partitioned copy of the input array with rearranging its elements so that the value of the element at the k-th position is in the position in which it would be in a sorted array. All elements smaller than the kth element move in front of this element, and all equal or larger ones move behind it. The order of the elements in the two sections is undefined. It returns an array of indices in the same form as arr, that is, arr [index_array] gives the delimited arr.

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

Parameters:
arr: [array_like] Input array.
kth: [int or sequence of ints] Element index to partition by.
axis: [int or None] Axis along which to sort. If None, the array is flattened before sorting. The default is -1, which sorts along the last axis.
kind: Selection algorithm. Default is `introselect`.
order: [str or list of str] When arr is an array with fields defined, this argument specifies which fields to compare first, second, etc.

Return: [index_array, ndarray] Array of indices that partition arr along the specified axis.

Code # 1:

# Python program explaining
# argpartition () function

 

import numpy as geek

 
# input array

in_arr = geek.array ([[ 2 , 0 1 ], [ 5 , 4 , 9 ]])

print ( "Input array:" , in_arr) 

 

out_arr = geek.argpartition (in_arr, 1 , axis = 1 )

print ( "Output partitioned array indices:" , out_arr)

Output:

 Input array: [[2 0 1] [5 4 9]] Output partitioned array indices: [[1 2 0] [1 0 2]] 

Code # 2:

# Python program explaining
# argpartition () function

 

import numpy as geek

 
# input array

in_arr = geek.array ([ 2 , 0 1 , 5 , 4 , 3 ])

print ( " Input array: " , in_arr) 

  

out_arr = geek.argpartition (in_arr, ( 0 , 2 ))

print ( "Output partitioned array indices:" , out_arr)

Exit :

 Input array: [2 0 1 5 4 3] Output partitioned array indices: [1 2 0 3 4 5]