A statistic package for python with enphasis on timeseries analysis. Built around numpy, it provides several back-end timeseries classes including R-based objects via rpy2. It is shipped with a domain specific language for timeseries analysis and manipulation built on to of ply. It requires Python 2.6 and up, including Python 3 versions.
--
- Documentation
- Dowloads
- Source
- Keywords
timeseries, quantitative, finance, statistics, numpy, R, web
--
To create a timeseries object directly:
>>> from dynts import timeseries
>>> ts = timeseries('test')
>>> ts.type
'zoo'
>>> ts.name
'test'
>>> ts
TimeSeries:zoo:test
>>> str(ts)
'test'
At the core of the library there is a Domain-Specific-Language (DSL) dedicated to timeserie analysis and manipulation. DynTS makes timeserie manipulation easy and fun. This is a simple multiplication:
>>> import dynts
>>> e = dynts.parse('2*GOOG')
>>> e
2.0 * goog
>>> len(e)
2
>>> list(e)
[2.0, goog]
>>> ts = dynts.evaluate(e).unwind()
>>> ts
TimeSeries:zoo:2.0 * goog
>>> len(ts)
251
There are few requirements that must be met:
- python 2.6 up to python 3.2.
- numpy version 1.5.1 or higher for arrays and matrices.
- ply version 3.3 or higher, the building block of the DSL.
- ccy for date and currency manipulation.
Depending on the back-end used, additional dependencies need to be met. For example, there are back-ends depending on the following R packages:
- rpy2 if an R TimeSeries back-end is used (default).
- zoo and PerformanceAnlytics for the
zoo
back-end (currently the default one) - timeSeries for the
rmetrics
back-end
Installing rpy2 on Linux is straightforward, on windows it requires the python for windows extension library.
- cython for performance. The library is not strictly dependent on cython, however its usage is highly recommended. If available several python modules will be replaced by more efficient compiled C code.
- xlwt to create spreadsheet from timeseries.
- matplotlib for plotting.
- djpcms for the
web.views
module.
There are three types of tests available:
regression
for unit and regression tests.profile
for analysing performance of different backends and impact of cython.bench
same asprofile
but geared towards speed rather than profiling.
From the distribution directory type:
python runtests.py
This will run by default the regression tests. To run a profile test type:
python runtests.py -t profile <test-name>
where <test-name>
is the name of a profile test. To obtain a list of available tests for each test type, run:
python runtests.py --list
for regression, or:
python runtests.py -t profile --list
for profile, or:
python runtests.py -t bench --list
from benchmarks.
If you access the internet behind a proxy server, pass the -p
option, for example:
python runtests.py -p http://myproxy.com:80
It is needed since during tests some data is fetched from google finance.
To access coverage of tests you need to install the coverage package and run the tests using:
coverage run runtests.py
and to check out the coverage report:
coverage report -m
- numpy developers.
Trying to use an IRC channel #dynts on irc.freenode.net
(you can use the webchat at http://webchat.freenode.net/).
If you find a bug or would like to request a feature, please submit an issue.