Numpy function recarray.argmax () | python

Arrays | NumPy | Python Methods and Functions

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;), (" b & # 8217 ;, " & lt; i8 ")])) to dtype (" V16 ") according to the rule " safe "





Get Solution for free from DataCamp guru