[Numpy-discussion] NetCDF4/numpy question

Howard howard at renci.org
Fri Jan 27 16:18:06 EST 2012


Hi all

I am a fairly recent convert to python and I have got a question that's 
got me stumped.  I hope this is the right mailing list: here goes :)

I am reading some time series data out of a netcdf file a single 
timestep at a time.  If the data is NaN, I want to reset it to the 
minimum of the dataset over all timesteps (which I already know).  The 
data is in a variable of type numpy.ma.core.MaskedArray called modelData.

If I do this:

       for i in range(len(modelData)):
          if math.isnan(modelData[i]):
             modelData[i] = dataMin

I get the effect I want, If I do this:

    modelData[np.isnan(modelData)] = dataMin

it doesn't seem to be working.  Of course I could just do the first one, 
but len(modelData) is about 3.5 million, and it's taking about 20 
seconds to run.  This is happening inside of a rendering loop, so I'd 
like it to be as fast as possible, and I thought the second one might be 
faster, and maybe it is, but it doesn't seem to be working! :)

Any ideas would be much appreciated.

Thanks
Howard

-- 
Howard Lander <mailto:howard at renci.org>
Senior Research Software Developer
Renaissance Computing Institute (RENCI) <http://www.renci.org>
The University of North Carolina at Chapel Hill
Duke University
North Carolina State University
100 Europa Drive
Suite 540
Chapel Hill, NC 27517
919-445-9651
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120127/2576f2bc/attachment.html>


More information about the NumPy-Discussion mailing list