Numpy recarray.partition () function | python



numpy.recarray.partition() rearranges the elements in the array in such a way that the value of the element in the kth position is in the position in which it will be in the sorted array. All elements smaller than the kth element move in front of that element, and all equal or larger ones move behind it.

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

Parameters:
kth: [int or sequence of ints] Element index to partition by.The kth element value will be in its final sorted position and all smaller elements will be moved before it and all equal or greater elements behind it.
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: [ndarray] Partitioned array of the same type and shape as arr.

Code # 1:

# Python program explaining
# numpy.recarray.partition () 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.partition methods
# float array of records

rec_arr.a.partition (kth = 3 )

print ( "Output partitioned float array:" , rec_arr.a) 

 
# applying recarray.partition methods
# into an array of records int

rec_arr.b.partition (kth = 4 )

print ( " Output partitioned int array: " , rec_arr.b) 

Output:

 Input array: [(5., 2) (3. , -4) (6., 9) (9., 1) (5., 4) (-12., -7)] Record array of float: [5. 3. 6. 9. 5. -12. ] Record array of int: [2 -4 9 1 4 -7] Output partitioned float array: [5. -12. 3. 5. 9. 6.] Output partitioned int array: [1 -7 -4 2 4 9] 

Code # 2:

We are applying numpy.recarray.partition () to the entire array of entries.

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

 
# import numy as 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 an array of posts,
# using arr.view (np.recarray)

rec_arr = in_arr.view (geek.recarray)

 
# using recarray.partition methods to write an array

rec_arr.partition (kth = 2 )

 

print ( "Output array:" , rec_arr)

Output:

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