Я пытаюсь использовать модуль Python itertools
для ускорения тройного вложенного цикла. В приведенном ниже тестовом коде сравнивается стандартный тройной вложенный цикл с методом и выходами продукта itertools:
Вложенное время цикла = 2,35023 сек.
Время цикла Itertools = 2.67766 секунд
Я что-то пропустил?
import numpy
import itertools
import time
n = 128
a = numpy.arange(n**3).reshape((n,n,n))
b = numpy.zeros((n,n,n))
c = numpy.zeros((n,n,n))
t = time.time()
for i in range(n):
for j in range(n):
for k in range(n):
b[i,j,k] = a[i,j,k]
print 'Nested loop time = %g secs' % (time.time() - t)
t = time.time()
for (i,j,k) in itertools.product(range(n), repeat=3):
c[i,j,k] = a[i,j,k]
print 'Itertools loop time = %g secs' % (time.time() - t)