将计算的函数存储到磁盘以便在python中快速访问

问题描述:

我的问题有两个部分。一:我要做一个二重积分的网格上将计算的函数存储到磁盘以便在python中快速访问

answer = integrate ( f(x,y) times besselfunction(x,y)) 

现在,我已经读了贝塞尔函数可以预先计算并保存到磁盘以便快速访问。我该怎么做呢?现在,我正在评估从scipy.special besselfunction,因为它是必需的。第二个问题:我已经数值地整合了一个微分方程,并且我使用了splined方法来求解其他微分方程组。但是花键解决方案很慢。有没有办法让这个更快?

您似乎在寻找磁盘上的memoization解决方案。
您或许可以创建一个memoization装饰器,它使用berkeleydb将迄今为止计算出的所有函数调用的结果存储到磁盘上(如果可以将生成的berkeleydb文件保存到每台运行程序的机器上,并且不介意它变为真的很大,你需要计算给定的一组参数的函数只有一次...我不知道这是否是一个好主意,但你在这里做什么)虽然)
谷歌搜索“memoize装饰磁盘“似乎会为您的问题带来一些有趣的解决方案。
这一个特别看起来有点看好 - http://www.stanford.edu/~pgbovine/incpy.html

+0

我应该提到,我对python知之甚少。我看着敏捷。如果我安装了incpy,是否意味着任何新的python程序都会自动运行(我不希望这样),并且我读它不能用于numpy数组。我想像我所追求的是人们经常想要做的事情 – alifranco

+0

我没有沉迷于自己,但是阅读那个页面,我看到incpy自带了可执行文件(Incpy/python.exe),所以只会运行当你调用这个可执行文件时,它似乎不会覆盖你的机器上的默认python可执行文件,所以我认为你在那个前端安全 –

+0

该页面似乎说它会与numpy一起工作,对不起听到你找到一些问题 –