numpy.argpartition()
function is used to create a indirect partitioned copy of input array with its elements rearranged in such a way that the value of the element in k-th position is in the position it would be in a sorted array. All elements smaller than the k-th element are moved before this element and all equal or greater are moved behind it. The ordering of the elements in the two partitions is undefined.It returns an array of indices of the same shape as arr, i.e arr[index_array]
yields a partition of 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 : \n" , in_arr) out_arr = geek.argpartition(in_arr, 1 , axis = 1 ) print ( "Output partitioned array indices :\n " , out_arr) |
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) |
Input array : [2 0 1 5 4 3] Output partitioned array indices: [1 2 0 3 4 5]