Diğerleri bunun nasıl saf python'da yapılacağına dair örnekler verdi. Bunu 100.000 element içeren dizilerle yapmak istiyorsanız numpy kullanmalısınız:
In [1]: import numpy as np
In [2]: vector1 = np.array([1, 2, 3])
In [3]: vector2 = np.array([4, 5, 6])
Öğe bazında ekleme yapmak artık önemsiz
In [4]: sum_vector = vector1 + vector2
In [5]: print sum_vector
[5 7 9]
Tıpkı Matlab'daki gibi.
Ashwini'nin en hızlı versiyonu ile karşılaştırma zamanı:
In [16]: from operator import add
In [17]: n = 10**5
In [18]: vector2 = np.tile([4,5,6], n)
In [19]: vector1 = np.tile([1,2,3], n)
In [20]: list1 = [1,2,3]*n
In [21]: list2 = [4,5,6]*n
In [22]: timeit map(add, list1, list2)
10 loops, best of 3: 26.9 ms per loop
In [23]: timeit vector1 + vector2
1000 loops, best of 3: 1.06 ms per loop
Yani bu daha hızlı bir faktör 25! Ama durumunuza uygun olanı kullanın. Basit bir program için, muhtemelen numpy yüklemek istemezsiniz, bu yüzden standart python kullanın (ve Henry'nin sürümünü en Pythonic olanı buluyorum ). Eğer ciddi sayıda gıcırdama yaşıyorsanız numpy
, ağır kaldırma yapalım . Hız düşkünleri için: görünüşe göre numpy çözümü daha hızlı başlıyor n = 8
.