优化Python代码中的大量计算以便分发包(使用Numba或Cython)

时间:2016-08-19 22:54:04

标签: python optimization package cython numba

我有一个我正在分发的Python包,我需要在其中包含一个函数,它执行一些繁重的计算,我无法在Numpy中找到编程为Scipy(即,我需要包含一个函数来计算一个variogram有两个变量,也称为cross-variogram)。

由于必须针对超过20000个元素的数组计算这些,我需要优化代码。我已经使用Numba成功优化了代码(非常容易),我也尝试使用Cython进行优化。根据我的阅读,两者的最终运行时间差别不大,只是步骤发生变化。

问题是:在我的计算机上优化此代码相对容易,但我不知道如何在我的github包中为其他用户包含代码及其优化(编译)版本。

我想我将只需要放置python / cython源代码并调整setup.py,以便为每个安装软件包的用户重新编译。如果是这样的话,我不确定我是否应该使用Numba或Cython,因为Numba似乎更容易使用(至少从经验来看)但是安装很麻烦(我不想强迫我的用户)安装anaconda!)。

总结一下,有两个问题:

  • 1这个特定的代码段确实应该在每个用户的计算机中重新编译吗?
  • 2如果是这样,使用Numba或Cython更方便?如果没有,我应该只提供我在计算机中编译的.so吗?

0 个答案:

没有答案