由于性能的原因,除了NumPy之外,我已经开始使用Numba了。我的Numba算法正在工作,但我有一种感觉,它应该更快。有一点是减缓它。以下是代码片段:在numba中的性能嵌套循环
@nb.njit
def rfunc1(ws, a, l):
gn = a**l
for x1 in range(gn):
for x2 in range(gn):
for x3 in range(gn):
y = 0.0
for i in range(1, l):
if numpy.all(ws[x1][0:i] == ws[x2][0:i]) and
numpy.all(ws[x1][i:l] == ws[x3][i:l]):
y += 1
if numpy.all(ws[x1][0:i] == ws[x2][0:i]) and
numpy.all(ws[x1][i:l] == ws[x3][i:l]):
y += 1
在我看来,if
命令减缓下来。有没有更好的办法? (我试图在这里实现是与先前发布的问题是什么:Count possibilites for single crossovers)ws
是尺寸含0
(gn, l)
的NumPy的阵列的和1
的
你意识到这种规模可怕地与'gn'的大小...? –
是的,l的最大大小是9,a总是2 – HighwayJohn
你在Python 2还是3? –