如何使用Python的TimeSeries模块存储1000个不同的数据序列?

1 投票
2 回答
901 浏览
提问于 2025-04-15 16:57

我想创建一个巨大的时间序列对象,这个对象会存储1000个不同的金融市场数据,每个市场有1500个每日数据点。我对时间序列模块还比较陌生,有点搞不清楚该怎么做。所以我有几个基本的问题:

1) 我应该使用一个1000x1500的大numpy数组,然后直接把它传给时间序列构造函数time_series()吗?

2) 如果我这样做的话,怎么才能通过名称来索引每个序列(比如"S&P500"或"GOLD")呢?我知道可以通过日期来访问数组,但我是否需要一个单独的数据结构来把序列名称和大数组中的列号关联起来?

3) 还是应该按照文档中给的例子使用结构化数据类型(http://pytseries.sourceforge.net/core.timeseries.html)?如果是这样的话,我该怎么一个一个地把序列添加到时间序列中,因为我不想一次性创建一个巨大的非numpy结构来传给time_series()构造函数?

如果能给我一些关于金融市场和时间序列模块的好例子的建议,我会非常感激。

谢谢。

2 个回答

1

1) 我曾经为一小组大约1万份相互链接的文档实现过一个PageRank算法。在计算过程中,我需要处理一个10Kx10K的矩阵,记得用numpy这个库来做的时候,速度快得惊人。

2) 我觉得把像系列名称这样的元数据存储在外部其实没什么大不了的……

3) 我没有使用过scikits.timeseries这个库,但我肯定会去了解一下;从我看到的情况来看,这个项目和numpy一样,都在scipy的范围内。

0

如果你想了解更多,可以看看Quantlib,这是一个很实用的金融工作库,还有一个活跃的用户邮件列表,可以在那儿找到帮助。

另外,建议你阅读这本书的评论,书名是《用Python进行金融建模》。

撰写回答