openmp 并行 速度更慢_python运行加速,让你的python执行速度提升100倍,python代码加速的终极杀招...
前一篇文章 echo:python之数值计算加速(一)使用pybind11,用C为python写pyd,主要介绍了使用C给python写模块的一些基本知识,本篇主要借助一个例子,来看下用C来计算到底可以有多快。
在多因子处理的过程中,对于因子的行业中性计算是运算量比较大,在因子处理时会花费比较多时间的一个环节。本篇就用Z-score方法来对因子进行行业中性化计算为例子,来看看到底行业中性计算可以达到什么样的速度。
话不多说,先把C的计算代码框架拿出来,然后分析下行业中性化的运算结构。
1. 输入参数为两个,一个是原始因子矩阵,另一个是和因子矩阵相对应的行业代码矩阵。
2. 返回结果为和原因子矩阵大小一致的行业中性化后的矩阵。
3. 最外层循环是对行的循环,也就是对时间循环。
4. 内层首先对列循环分别计算相同行业的因子均值和标准差(这里需要用到均值和标准差的迭代公式)。
5. 最后再对列循环计算行业中性化后的因子值,并填入结果矩阵中。
按照上述逻辑编写代码