In [1]:
import numpy as np

In [2]:
x = [2,4,6,8]
y = [81, 93, 91, 97]

In [3]:
mx = np.mean(x)
my = np.mean(y)

In [4]:
print(mx)


5.0

In [5]:
print(my)


90.5

In [6]:
divisor = sum([(mx - i)**2 for i in x])

In [39]:
def top(x, mx, y, my):
    d = 0
    for i in range(len(x)):
        d += (x[i] - mx) * (y[i] - my)
    return d

In [40]:
print(x)


[2, 4, 6, 8]

In [41]:
dividend = top(x, mx, y, my)

In [42]:
print(dividend)


46.0

In [14]:
def top2(x, mx, y, my):
    return sum([((x[i] - mx) * (y[i] - my)) for i in range(len(x))])

In [15]:
print(top2(x, mx, y, my))


46.0

In [19]:
[((x[i] - mx) * (y[i] - my)) for i in range(len(x))]


Out[19]:
[28.5, -2.5, 0.5, 19.5]

In [43]:
a = dividend / divisor

In [44]:
b = my - (mx * a)

In [46]:
print(a,b)


2.3 79.0

In [ ]: