[本文是入门级知识,适合非码农出身的金融从业人员阅读]
金融交易中产生的数据往往是“时间序列”,就像一张列column信息固定、行row随时间增加的表格。特点是数据量大,单次运算往往要处理GB级。
常见的表格处理工具比如excel、sql数据库等,并非专门为处理这类数据而设计,性能力不从心,对科学计算支持也不足。
最常用的金融数据分析工具包之一:Pandas
Pandas作为专门用于金融数据分析的Python库,为时间序列分析提供了极好的支持。Pandas是AQRCapitalManagement于年发布,并于年底开源。
Pandas的名称来自于面板数据(paneldata)和python数据分析(dataanalysis),主要作者是WesMcKinney。
Wes目前是LambdaFoundry,Inc.的CTO和联合创始人。他毕业于麻省理工数学系,杜克大学统计学博士在读。Wes从年开始在AQR做宏观研究。在-年期间,他是一些对冲基金和银行(交易部门)的Python顾问,同时做Pandas的开发。
在量化时代,初学者选择一套合适的工具框架很重要。Pandas有多流行?国内外几乎所有的交易数据接口都支持Pandas。交易员可以以最短的时间、最低的学习成本进行实际的数据分析、得到结果。而且用的人越多,案例和交流就越多,遇到问题就能更快的解决。
Pandas的数据结构简介
首先,整个Pandas是基于Numpy的
Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
DataFrame:二维的表格型数据结构,可以理解成Series的容器。。
Panel:三维数组,可以理解成DataFrame的容器。
Python框架性能如何
这个话题展开了可以说很多。咱们不必抠技术细节,有个整体的认知即可,结论是完全够用。当然,如果追求极致速度的实时分析、实时交易,那也远远不仅仅是软件层面的事情,甚至不完全是量化数据处理的范畴。
A股市场每天大概产生1-10GB的数据(视成交量大小浮动)。其中3秒快照大概是万行,逐笔数据大概也差不多规模。如果盘后用python框架做逐条回放,只需几分钟就能跑完。
在后面的文章中,我们会分享很多股票交易数据分析和量化选股的案例,包括实时分析和历史数据分析,都是使用pandas工具库,因为它实在是太好用啦。
赞赏