这是一个非常普遍的问题——有没有办法向量化结果模拟(下一步取决于前面的步骤),或者任何这样的迭代算法?
显然,如果需要运行 M 次模拟(每 N 步),您可以for i in range(N)
在每一步中使用并计算 M 值以获得显着的加速。但是假设您只需要一个或两个具有很多步骤的模拟,或者您的模拟没有固定数量的步骤(如辐射检测),或者您正在求解一个微分系统(同样,对于很多步骤)。有什么方法可以将上部 for 循环推到numpy
引擎盖下(速度增益,我不是在谈论将 python 函数对象传递给numpy.vectorize
),或者 cython-ish 方法是唯一的选择?或者也许这在 R 或一些类似的语言中是可能的,但在 Python 中不是(目前?)?