我们可以在Cython中调用C语言函数。作为示例,在本章中我们将调用C语言的log
函数。该函数只能对单个数字进行操作,而NumPy中的log
函数还可以对数组进行操作。我们将计算股价的对数收益率。
具体步骤
从编写Cython代码开始。
- 编写.pyx文件。
首先需要从libc命名空间引入C语言的log
函数。然后通过使用for
循环,把该函数应用于数组的各个元素。最后使用NumPy中的diff
函数,计算取对数后所得结果的一阶差分。
在前面的攻略中,我们已经介绍了Cython模块的构建过程。我们只需要对setup.py文件稍作修改即可。
- 绘制对数收益率。
用Matplotlib下载股价数据,把刚刚生成的Cython模块中的logrets
函数应用于收盘价数据并绘制出结果。
AAPL股票的对数收益率图示如下:
攻略小结
我们在Cython代码中,调用了C语言的log
函数。该函数和NumPy中的函数一起用来计算股票的对数收益率。通过这种方式,我们可以创建自己专用的包含便捷函数的API。在Cython中调用C语言函数的好处是,代码的执行速度应该和C语言代码差不多,而代码总体来看还是Python代码。