Skip to content
Related Articles

Related Articles

Improve Article

Numpy recarray.partition() function | Python

  • Last Updated : 27 Sep, 2019
Geek Week

In numpy, arrays may have a data-types containing fields, analogous to columns in a spreadsheet. An example is [(a, int), (b, float)], where each entry in the array is a pair of (int, float). Normally, these attributes are accessed using dictionary lookups such as arr['a'] and arr['b']. Record arrays allow the fields to be accessed as members of the array, using arr.a and arr.b.

numpy.recarray.partition() function rearranges the elements in the array in such a way that value of the element in kth position is in the position it would be in a sorted array. All elements smaller than the kth element are moved before this element and all equal or greater are moved 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 
  
# importing numpy as geek
import numpy as geek
  
# creating input array with 2 different field 
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 a record array,
# 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)
  
# applying recarray.partition methods
# to float record array 
rec_arr.a.partition(kth = 3)
print ("Output partitioned float array : ", rec_arr.a) 
  
# applying recarray.partition methods 
# to int record array 
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 whole record array.




# Python program explaining
# numpy.recarray.partition() method 
  
# importing numpy as geek
import numpy as geek
  
# creating input array with 2 different field 
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 a record array, 
# using arr.view(np.recarray)
rec_arr = in_arr.view(geek.recarray)
  
# applying recarray.partition methods to record 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)]]

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :