[Numpy-discussion] find location of maximum values

Derek Homeier derek@astro.physik.uni-goettingen...
Wed Jan 4 05:29:36 CST 2012


On 04.01.2012, at 5:10AM, questions anon wrote:

> Thanks for your responses but I am still having difficuties with this problem. Using argmax gives me one very large value and I am not sure what it is. 
> There shouldn't be any issues with the shape. The latitude and longitude are the same shape always (covering a state) and the temperature (TSFC) data are hourly for a whole month. 

There will be an issue if not TSFC.shape == TIME.shape == LAT.shape == LON.shape

One needs more information on the structure of these data to say anything definite, 
but if e.g. your TSFC data have a time and a location dimension, argmax will 
per default return the index for the flattened array (see the argmax documentation 
for details, and how to use the axis keyword to get a different output). 
This might be the very large value you mention, and if your location data have fewer 
dimensions, the index will easily be out of range. As Ben wrote, you'd need extra work to 
find the maximum location, depending on what maximum you are actually looking for. 

As a speculative example, let's assume you have the temperature data in an 
array(ntime, nloc) and the position data in array(nloc). Then 

TSFC.argmax(axis=1) 

would give you the index for the hottest place for each hour of the month 
(i.e. actually an array of ntime indices, and pointer to so many different locations). 

To locate the maximum temperature for the entire month, your best way would probably 
be to first extract the array of (monthly) maximum temperatures in each location as

tmax = TSFC.max(axis=0)

which would have (in this example) the shape (nloc,), so you could directly use it to index 

LAT[tmax.argmax()]   etc. 

Cheers,
						Derek



More information about the NumPy-Discussion mailing list