在Cython中使用NumPy,在Cython中使用NumPy代码和使用Python代码的方法是一样的。我们将介绍一个例子,用来分析一支股票的上涨日所占的比例。上涨日的基本特征就是当日股票的收盘价高于前一交易日。我们将计算二项分布总体率的置信区间(binomial proportion confidence)。有关二项分布总体率的置信区间的更多信息,请参考http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval。这个置信区间用来表征上涨日出现概率的可信程度。
具体步骤
下面详细介绍怎样在Cython中使用NumPy代码。为此,需要执行以下步骤。
- 编写.pyx文件。
编写一个.pyx文件,其中包括一个函数,用来计算上涨日的比例值及其置信区间。该函数首先要计算股价的差值,然后要对大于0的差值进行计数并算出上涨日的比例,最后要应用求置信区间的公式(详见上述维基百科页面)。
- 编写setup.py文件。
我们把上文中的setup.py文件作为模版,在此基础上进行修改。有几个明显需要修改的地方,例如.pyx文件的名字。
现在可以进行构建了,具体步骤请见上一章。
- 使用Cython模块。
完成构建后,把生成的Cython模块引入Python程序。我们将编写一个用Matplotlib下载股票数据的Python程序,该程序在分析收盘价数据时将用到confidence
函数。
以AAPL为命令行参数,程序运行后的输出结果如下。
攻略小结
我们计算了AAPL股票上涨日出现的概率及其对应的置信区间。我们在.pyx文件中使用了NumPy代码。采用和上一攻略相同的方式,我们用这个.pyx文件构建出一个Cython模块。最后在Python代码中引入并使用了这个Cython模块。