我再次有一个关于大循环的问题。
假设我有一个功能
limits
def limits(a,b):
*evaluate integral with upper and lower limits a and b*
return float result
A 和 B 是存储我的值 a 和 b 的简单 np.arrays。现在我想计算积分 300'000^2/2 次,因为 A 和 B 的长度分别为 300'000 并且积分是对称的。
在 Python 中,我尝试了几种方法,例如itertools.combinations_with_replacement
创建 A 和 B 的组合,然后将它们放入积分中,但这需要大量时间并且内存完全过载。有什么方法可以加快速度,例如用另一种语言传输循环?
我想运行循环
for i in range(len(A)):
for j in range(len(B)):
np.histogram(limits(A[i],B[j]))
我认为对返回进行直方图limits
是可取的,以免存储成正比增长的额外数组。
从我读到的内容来看,python 并不是这种迭代分析的最佳选择。
那么在 Python 中用另一种语言评估这个循环是否合理,如果是,如何做。我知道有一些方法可以传输代码,但到目前为止我还没有这样做过。
谢谢你的帮助。