thanks for the responses. Unfortunately they are not matching shapes >>> print TSFC.shape, TIME.shape, LAT.shape, LON.shape (721, 106, 193) (721,) (106,) (193,)
So I still receive index out of bounds error: >>>tmax=TSFC.max(axis=0) numpy array of max values for the month >>>maxindex=tmax.argmax() 2928 >>>maxtemp=tmax.ravel()[maxindex] #or maxtemp=TSFC.max() 35.5 (degrees celcius) >>>latloc=LAT[tmax.argmax()] IndexError: index out of bounds lonloc=LON[tmax.argmax()] timeloc=TIME[tmax.argmax()] Any other ideas for this type of situation? thanks On Wed, Jan 4, 2012 at 10:29 PM, Derek Homeier < de...@astro.physik.uni-goettingen.de> wrote: > 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 > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion