[SciPy-user] scikits.timeseries : how would Iplot (orcalculate) monthly statistics.

Dharhas Pothina Dharhas.Pothina at twdb.state.tx.us
Thu Mar 5 14:49:28 EST 2009


Thank you. This worked great and saved me a lot of time. I'm slowly getting the hang of this package. Sorry for the obvious question but I assume that ma.mean()  etc automatically excludes masked values from the calculation.

- d

>>> Pierre GM <pgmdevlist at gmail.com> 3/4/2009 3:46 PM >>>
Dharhas,

On Mar 4, 2009, at 4:26 PM, Dharhas Pothina wrote:
> Original data is on an approximately two week frequency. I'll be  
> reading them in as daily values and converting to monthly.

OK, you could try 'W', but 'D' is also OK.

> I eventually want to calculate plot monthly values in a particular  
> year vs mean monthly values for all years (ie vs mean for each month  
> irrespective of year)

Then, that's quite easy:
First, compute the means per month:
 >>> mseries = series.convert('M', func=ma.mean)
You end up with a (n*12) series. Convert it to annual, but w/o  
precising a function
 >>> aseries = mseries.convert('A')
aseries is a (n, 12) series: years in rows, months in columns.  
aseries[i,j] is the mean over month j for year i.

If you want the monthly values over all the years, just take the mean  
along axis=0

>
>
>> If you have a monthly frequency: just use .convert('A') and compute
>> the stats for each column.
>
> Wouldn't this convert it to an Annual frequency, ie one value per  
> year?

It does, but because you don't precise a func, you end up with a 2D  
array

http://pytseries.sourceforge.net/generated/scikits.timeseries.TimeSeries.convert.html#scikits.timeseries.TimeSeries.convert 


>> The generic idea is indeed to first convert to monthly. You end up
>> with a (12*n, 31) series that you have to reshape
>
> I get the 12*n , ie 12 months * number of years. Where does the 31  
> come from. Does the series still contain the daily values after  
> conversion to monthly?

I was talking about a 'D'aily series to convert to monthly, without  
using a 'func' parameter. You then end up with a 2D series, with 12*n  
rows and 31 columns (because there's at most 31 days per month). Note  
that the last column (day 31) would be masked for Feb, Apr, Jun, Sep,  
Nov.


_______________________________________________
SciPy-user mailing list
SciPy-user at scipy.org 
http://projects.scipy.org/mailman/listinfo/scipy-user




More information about the SciPy-User mailing list