Christopher Barker <Chris.Barker <at> noaa.gov> writes: >> I'm also imaging some extra utility functions/method that would be nice: >> >> aDateTimeArray.hours(dtype=float) >> >> to convert to hours (and days, and seconds, etc). And maybe some that >> would create a DateTimeArray from various time units.
The DateArray class in the timeseries scikits can do part of what you want. Observe... >>> import scikits.timeseries as ts >>> a = ts.date_array(start_date=ts.now('hourly'), length=15) >>> a DateArray([12-Jul-2008 11:00, 12-Jul-2008 12:00, 12-Jul-2008 13:00, 12-Jul-2008 14:00, 12-Jul-2008 15:00, 12-Jul-2008 16:00, 12-Jul-2008 17:00, 12-Jul-2008 18:00, 12-Jul-2008 19:00, 12-Jul-2008 20:00, 12-Jul-2008 21:00, 12-Jul-2008 22:00, 12-Jul-2008 23:00, 13-Jul-2008 00:00, 13-Jul-2008 01:00], freq='H') >>> a.year array([2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008]) >>> a.hour array([11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 1]) >>> a.day array([12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13]) >>> Note that the DateArray (or TimeSeries) need not be continuous, I just constructed a continuous DateArray in this example for simplicity. I would encourage you to take a look at the wiki (http://scipy.org/scipy/scikits/wiki/TimeSeries) as you may find some surprises in there that prove useful. >> >> I often have to read/write data files that have time in various units >> like that -- it would be nice to use array operations to work with them. If peak performance is not a concern, parsing of most date formats can be done automatically using the built in parser in the timeseries module (borrowed from mx.DateTime). Observe... >>> dlist = ['14-jan-2001 14:34:33', '16-jan-2001 10:09:11'] >>> a = ts.date_array(dlist, freq='secondly') >>> a DateArray([14-Jan-2001 14:34:33, 16-Jan-2001 10:09:11], freq='S') >>> a.second array([33, 11]) - Matt _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion