У меня есть петли в python, которые повторяются почти 2,5 миллиона раз, и для получения результата требуется столько времени. В JS я могу сделать это примерно за 1 секунду, но Python делает это через 6 секунд на моем компьютере. В этом случае я должен использовать Python. Вот код:Ускорение циклов с методами списка в Python
for i in xrange(k,p,2):
arx = process[i]
ary = process[i+1]
for j in xrange(7,-1,-1):
nx = arx + dirf[j]
ny = ary + dirg[j]
ind = ny*w+nx
if data[ind] == e[j]:
process[c]=nx
c=c+1
process[c]=ny
c=c+1
matrix[ind]=1
Вот некоторые списки из кода: process = [None] * (11000*4)
это детали будут заменены с целыми после его присвоения.
dirf = [-1,0,1,-1,1,-1,0,1]
dirg = [1,1,1,0,0,-1,-1,-1]
e = [9, 8, 7, 6, 4, 3, 2, 1]
Список данных состоит из информации 'r' из пикселей изображения rgba. data = imgobj.getdata(0)
Как я могу увеличить это. Что я делаю не так? Есть ли какие-либо другие подходы к циклам? Благодарю.
Требуется 34,9 * миллисекунды * для итерации 2,5 миллиона раз на моей машине (это медленно, но это не 6 секунд медленно). – jfs
это быстро, но только при использовании без заданий ниже. Я должен работать с ними. – malisit
Вы пробовали numba http://numba.pydata.org/, чтобы ускорить ваш питон? – fgoettel