Python:PyPy:SciPy /卡方分布?

dsi*_*cha 4 python statistics performance pypy libraries

我有一个Python项目,其中性能非常重要.老实说,我知道Python(至少是纯Python)不是最好的工具,但无论如何我都在使用它,因为我想分发一些非常简单的纯python版本的一些研究代码,以便人们可以修改它,等,而不必设置复杂的环境.(我还有一个替代实现,用D编写,速度更快但更难破解.)

我使用PyPy作为我的翻译,并向任何使用此代码的人推荐它.这给了我合理的速度.然后我决定调整算法并需要从SciPy访问一些函数(我需要的只是CDF,生存函数和卡方阵的逆CDF).我尝试在CPython中运行我的代码来访问SciPy,它作为糖蜜很慢.

有人可以建议三件事之一:

  1. 一个kludge,允许我使用PyPy的一些片段SciPy.

  2. 在自由主义许可下,我需要更纯粹的python实现卡方分布功能吗?

  3. 一种JIT CPython瓶颈的方法?我知道Psyco,但它似乎没有维护,只适用于32位系统.

fij*_*jal 5

SciPy还没有在PyPy上运行,虽然有一些工作可以让它相对较快地发生,只要你愿意每晚使用并做一些调整,这样你只使用支持的numpy子集(无论如何都会迅速扩展).我建议你现在只是尝试将SciPy函数移植到Python,如果时间紧迫你(它们应该相对简单,但仍然有效).在PyPy网站上还有一个numpy筹款活动,以便更快地实现这一目标:)

编辑:这是通过嵌入CPython在pypy上运行的matplotlib:http://baroquesoftware.com/~fijal/extreme_hacks.png

EDIT2:阅读http://morepypy.blogspot.com/2011/12/plotting-using-matplotlib-from-pypy.html以获取示例.

干杯,fijal