Change language

# Numpy recarray.argsort () function | python

| | |

Record arrays allow you to access fields as elements of an array using ` arr.a and arr.b ` ` numpy.recarray.argsort () ` returns the indices that will sort this array.

Syntax: ` numpy.recarray.argsort (arr, axis = -1, kind = ’quicksort’ , order = None) `

Parameters:
arr: Input Record array.
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: [’quicksort’, ’mergesort’, ’heapsort’] Selection algorithm. Default is ’quicksort’.
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 sort arr along the specified axis.

Code # 1:

 ` # Python program explaining ` ` # numpy.recarray.argsort () method `   ` # import numy as a geek ` ` import ` ` numpy as geek `   ` # create an input array with two different fields ` ` in_arr ` ` = ` ` ge ek.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.argsort methods # place array of records along axis 1 out_arr = geek.recarray.argsort (rec_arr.a, axis = 1 ) print ( "Output sorted array indices along axis 1:" , out_arr)    # applying recarray.argsort methods to # int array of entries along axis 0 out_arr = geek.recarray.argsort (rec_arr.b, a xis = 0 ) print ( "Output sorted 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 sorted array indices along axis 1 : [[1 0 2] [2 1 0]] Output sorted array indices array along axis 0: [[1 0 1] [0 1 0]] `

Code no. 2:

We are applying ` numpy.recarray.argsort () ` to the entire array of records.

 ` # Python program explaining ` ` # numpy.recarray.argsort () me tode `   ` # 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) `   ` # using recarray.argsort methods to write an array ` ` out_arr ` ` = ` ` geek.recarray.argsort (rec_arr, kind ` ` = ` ` ’heapsort’ ` `) `   ` 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 sorted array indices: [[1 0 2] [2 1 0]] `