Numpy recarray.argpartition () function | python

Record arrays allow you to access fields as elements of an array using arr.a and arr.b numpy.recarray.argpartition () returns indexes that numpy.recarray.argpartition() this array.

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

Parameters:
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
# numpy.recarray.argpartition () method

 
# import numy as a geek

import numpy as geek

 
# create an input array with two different fields

in_arr = geek.array ([[( 5.0 , 2 ), ( 3.0 , - 4 ), ( 6.0 , 9 )],

[( 9.0 , 1 ), ( 5.0 , 4 ), ( - 12.0 , - 7 )]],

dtype = [( ` a` , float ), ( `b` , int )])

print ( "Input array:" , in_arr)

 
# convert it to an array of posts,
# using arr.view (np.recarray)

rec_arr = in_arr.view (geek.recarray)

print ( "Record array of float:" , rec_arr.a)

print ( "Record array of int:" , rec_arr.b)

 
# using recarray.argpartition methods
# place an array of posts along axis 1

out_arr = geek.recarray.argpartition (rec_arr .a, kth = 1 , axis = 1 )

print ( " Output partitioned array indices along axis 1: " , out_arr) 

 
# using recarray.argpartition methods
# to an array of int records along the 0 axis

 

out_arr = geek.recarray.argpartition (rec_arr.b, kth = 1 , axis = 0 )

print ( "Output partitioned array indices array along axis 0:" , out_arr) 

Output:

 Input array: [[ (5.0, 2) (3.0, -4) (6.0, 9)] [(9.0, 1) (5.0, 4) (-12.0, -7)]] Record array of float: [[5. 3. 6. ] [9. 5. -12.]] Record array of int: [[2 -4 9] [1 4 -7]] Output partitioned array indices along axis 1: [[1 0 2] [2 1 0]] Output partitioned array indices array along axis 0: [[1 0 1] [0 1 0]] 

Code # 2:

We apply numpy.recarray.argpartition () to the whole array for records.

# Python program explaining
# numpy.recarray.argpartition () method

 
# import numy as a geek

import numpy as geek

  
# create an input array with two different fields

in_arr = geek.array ([[( 5.0 , 2 ), ( 3.0 , 4 ), ( 6.0 , - 7 )],

  [( 9.0 , 1 ), ( 6.0 , 4 ), ( - 2.0 , - 7 )]],

dtype = [( `a` , float ), ( `b` , int )])

print ( "Input array:" , in_arr)

 
# convert it to array of posts,
# using arr.view (np.recarray)

rec_arr = in_arr.view (geek.recarray)

 
# application recarray.argpartition methods to write an array

out_arr = geek.recarray.argpartition (rec_arr, kth = 2 )

 

print ( " Output array: " , out_arr)

Output:

 Input array: [[( 5.0, 2) (3.0, 4) (6.0, -7)] [(9.0, 1) (6.0, 4) (-2.0, -7)]] Output array: [[1 0 2] [2 1 0] ]