форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
26 строки
540 B
Python
26 строки
540 B
Python
def mod2(list1, list2):
|
|
n = min(len(list1), len(list2))
|
|
if n == 0:
|
|
return 0.0
|
|
|
|
avg1 = sum(list1[:n]) / n
|
|
avg2 = sum(list2[:n]) / n
|
|
|
|
numerator = 0
|
|
denom1 = 0
|
|
denom2 = 0
|
|
|
|
for i in range(n):
|
|
diff1 = list1[i] - avg1
|
|
diff2 = list2[i] - avg2
|
|
numerator += diff1 * diff2
|
|
denom1 += diff1 * diff1
|
|
denom2 += diff2 * diff2
|
|
|
|
if denom1 == 0 or denom2 == 0:
|
|
return 0.0
|
|
|
|
correlation = numerator / ((denom1 * denom2) ** 0.5)
|
|
|
|
return correlation
|