购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 常见的Python库

本节为刚接触Python的读者简单介绍常见的Python库。

1.NumPy

NumPy是Python的一种开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身的列表结构要高效得多。NumPy底层使用 BLAS 作为向量,各种运算的速度也得到大幅提升。它主要包括:

◎ 强大的N维数组对象Array;

◎ 比较成熟的(广播)函数库;

◎ 用于整合C、C++和Fortran代码的工具包;

◎ 实用的线性代数、傅里叶变换和随机数生成函数,使 NumPy 和稀疏矩阵运算包SciPy的配合使用更加方便。

另外,NumPy中的数据类型在 Pandas、Scikit-Learn、StatsModels 等库中被作为基本数据类型使用。

2.Pandas

Python 之所以能成为强力的数据分析工具,和 Pandas 库有很大的关系。Pandas 的主要应用环境如下:

(1)数据的导入与导出;

(2)数据清理;

(3)数据挖掘与探索;

(4)为分析做数据处理与准备;

(5)结合Scikit-Learn、StatsModels进行分析。

在本书中用得最多的Pandas对象是DataFrame,它是一个两维数据表结构,包含多行多列,如表1-1所示。

表1-1

相对于 R等统计软件,Pandas借鉴了 R的数据结构,因此拥有了 R的很多方便的数据操作特性;在语法设计上,Pandas比R和Stata更严谨且更简洁易用;基于Python自动管理内存的能力,以及在很多细节上的优化(比如在数据操作过程中的数据复制和引用),Pandas拥有了更好的管理和计算大数据的能力。

Pandas的底层基于NumPy搭建,因此Pandas拥有了NumPy的全部优点,比如Pandas定义的数据结构可以支持NumPy已经定义的计算,相当于拥有了MATLAB的矩阵计算能力;NumPy原生的C接口也为扩展Pandas的计算性能带来了很大的方便。

对于金融用户来讲,Pandas提供了一系列适用于金融数据的高性能时间序列与工具,例如Panel、时间Series等。

3.Matplotlib

Matplotlib是Python最著名的绘图库,提供了一整套和MATLAB相似的命令API,十分适合进行交互式制图。我们也可以很方便地将它作为绘图控件,嵌入GUI应用程序中。

Matplotlib 的文档相当完备,而且在 Gallery 页面(http://matplotlib.org/gallery.html)中有上百幅缩略图,打开后都有源程序。因此,如果需要绘制某种类型的图,则只需在这个页面中浏览、复制、粘贴,就基本可以搞定。

4.Seaborn

Seaborn其实是在Matplotlib的基础上进行了更高级的API封装,从而使作图更容易,如图 1-1 所示。在大多数情况下使用 Seaborn 就能制作出非常有吸引力的图,而使用Matplotlib就能制作出具有更多特色的图。笔者认为:应该把Seaborn视为Matplotlib的补充,而不是替代物。

图1-1

Seaborn默认的浅灰色背景与白色网络线的灵感来源于Matplotlib,却比Matplotlib的颜色更加柔和。我们发现,图对于传播信息很有用,几乎在所有情况下,人们喜欢图更甚于表。

5.SciPy

SciPy 包含致力于解决科学计算中常见问题的各个工具箱。它的不同子模块相当于不同的应用,例如插值、积分、优化、图像处理、特殊函数等。

SciPy可以与其他标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算库)或者 MATLAB 工具箱。SciPy 是 Python 中科学计算程序的核心包,用于有效地计算NumPy矩阵,让NumPy和SciPy协同工作。

6.Scikit-Learn

Scikit-Learn 是基于 Python 的机器学习模块,基于 BSD 开源许可证。Scikit-Learn 的基本功能主要被分为6部分:分类、回归、聚类、数据降维、模型选择和数据预处理,具体可以参考官方网站上的文档(http://scikit-learn.org/stable/)。

对具体的机器学习问题的解决,通常可以分为三步:数据准备与预处理;模型选择与训练;模型验证与参数调优。Scikit-Learn 封装了这些步骤,使建模的过程更方便、简单和快捷。

7.StatsModels

StatsModels 是 Python 的统计建模和计量经济学工具包,包括一些描述统计、统计模型估计和推断,例如线性回归模型、广义线型回归模型、方差分析模型、时间序列模型、非参检验、优化、绘图功能等。

8.Quartz

Quartz是优矿的在线回测模块库,提供了跨资产多账户交易的量化策略框架,可以对策略进行专业的历史回测,得到详细的策略表现评估结果。它包括:多因子选股策略、事件驱动策略、C TA策略、大宗商品期现预测策略、相对价值策略、宏观择时/对冲策略、分级基金轮动/套利策略、FOF策略、期权波动率策略与资产配置和轮动策略等。最新版为Quartz 3,其特点如下。

◎ 支持标准级的策略编写规范,删减了大量冗余的策略API,让我们只需记忆少量的函数名,即可快速实现策略想法。

◎ 扩充了策略交易的资产范围,从原来只支持股票、基金这两种资产类型,扩充到支持股票、场内外基金、指数、期货这4种资产的全资产平台。也就是说,在一个策略中既可以交易股票,又可以交易基金,还可以交易期货,实现真正意义上的多空对冲策略。在不久的将来,还会支持期权、债券、港股等资产类型。

◎ 体现了策略信号生成和交易执行相分离的思想,可以灵活地进行各种资产的数据分析和交易撮合。

◎ 支持更多的策略特型,例如多因子裸多策略、市场中性策略、FOF 策略和 CTA期现策略等。

◎ 会得到更充分的研究和支持,新的示例会逐步扩充在优矿知识库中,辅助我们更好地进行量化研究。

◎ 在性能方面进行了诸多优化,让我们可以用更快的运行速度进行策略研究。

9.CAL

在现阶段,中国市场缺乏为本土市场定制化的金融分析工具。中国的广大中小投资者在面对这个纷繁复杂的市场时往往束手无策:“这个债券定价合理吗?什么是隐含波动率?我的资产包要做优化,这个怎么处理?”这也是萦绕在所有投资者脑海中的问题。在过去,对这些问题的解决要通过购买昂贵的专业终端才能进行,是广大个人投资者可望而不可即的。

在如上所述的大环境下,CAL 应运而生。CAL 依托优矿量化实验室在线平台,基于C++开发高性能引擎,以Python作为接口语言向用户提供功能,它的宗旨是为广大投资者提供丰富、灵活的金融分析模块,降低投资者的分析平台搭建成本,帮助用户在金融大浪中顺利前行。可通过https://uqer.io/help/faqCAL/查看CAL具体的帮助文档。

本书还会在第3章中更详细地介绍上述重要的库。 s3stPH7eJrzpjcXco04RiylIzMRxSjwY5zPc1vrZxtfQWl54M2yFrlqrrNqYx0i7

点击中间区域
呼出菜单
上一章
目录
下一章
×