Numpy function recarray.argmax () | python



Record arrays allow you to access fields as elements of an array using arr.a and arr.b numpy.recarray.argmax () returns the indices of the max array element on a specific axis.

Syntax: numpy.recarray.argmax (axis = None, out = None)

Parameters:
axis: [int, optional] Along a specified axis like 0 or 1
out : [ndarray, optional] A location into which the result is stored.
 – & gt; If provided, it must have a shape that the inputs broadcast to.
 – & gt; If not provided or None, a freshly-allocated array is returned.

Returns: [ndarray of ints] Array of indices into the array with same shape as array.shape with the dimension along axis removed.

Code # 1:

# Python program explaining
# numpy.recarray.argmax () 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 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)

 

 
# applying recarray.argmax methods to
# floating array of records along axis 1

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

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

  
# applying recarray.argmax methods to
# int array of records along axis 0

out_arr = geek.recarray.argmax (rec_arr.b, axis = 0 )

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

Exit :

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

Code # 2:

If we apply numpy.recarray.argmax () to the entire array of records, this will give Type error .

# Python program explaining
# numpy.recarray.argmax () method
# importing numy as geek

import numpy a s 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.argmax methods to write an array

out_arr = geek.recarray.argmax (rec_arr)

Exit:

TypeError: Cannot cast array data from dtype ((numpy.record, [(`a`, `& lt; f8 & # 8242;), (& # 8216; b & # 8217 ;, & # 8216; & lt; i8 & # 8217;)])) to dtype (& # 8216; V16 & # 8217;) according to the rule & # 8216; safe & # 8217;