由於性能的原因,除了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? –