[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