2015-10-01 7 views
2

Каков наиболее эффективный способ вычисления остатков двух массивов numpy?Python: быстрые вычисления остатков

Я делаю это следующий способ:

def residuals(array1, array2): 
sum = 0. 
for i in xrange(len(lane1)): 
    sum += (lane1[i] - lane2[i])**2 
return sum 

И мне интересно, если есть какие-либо другие лучшие решения?

+1

является 'lane1/2' должен быть' array1/2'? – Holloway

ответ

4

Да, обратите внимание, что вы можете выполнять математические операции непосредственно на массивах, и они применяются поэлементно:

>>> import numpy as np 
>>> arr1 = np.array((1, 2, 3)) 
>>> arr2 = np.array((4, 5, 6)) 
# differences 
>>> arr1 - arr2 
array([-3, -3, -3]) 
# squared differences 
>>> (arr1 - arr2) ** 2 
array([9, 9, 9]) 
# sum of squared differences 
>>> np.sum((arr1 - arr2) ** 2) 
27 
+0

Спасибо, jonrsharpe! – aob

Смежные вопросы