Üçlü iç içe geçmiş bir döngüyü hızlandırmak için Python'un itertools
modülünü kullanmaya çalışıyorum.Python itertools - yavaş mı?
İçiçe döngü süresi = 2,35023 saniye
Itertools döngü süresi = 2,67766 saniye
bir şey eksik: Aşağıdaki test kodu itertools' ürün yöntemi ve çıkışlar ile standart bir üçlü iç içe döngü karşılaştırır?
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)
O
itertools.product
gibi görünüyor
"Bir şey özlüyor muyum?" - Kaybettiğiniz şey, hiç kimsenin "itertools.product()") fikrinin, döngüler için –
@Sven Marnach 9.7 'yi iç içe hızlandırmak olduğunu iddia etmemesidir. itertools - Etkin döngü için yineleyiciler oluşturma işlevleri ... http: //docs.python.org/library/itertools.html –