线 rl = [对于xs中的x,m(m * x)+ b] 导致“ TypeError:'numpy.float64'对象不可调用”错误 代码
xs=np.array([1, 2, 3, 4, 5, 6], dtype=np.float64)
ys=np.array([5,4,6,5,6,7], dtype=np.float64)
def best_fit_slope_and_b(xs, ys):
top= ( s.mean(xs) * s.mean(ys) ) - s.mean(xs*ys)
m=top/( (s.mean(xs)*s.mean(xs))-s.mean(xs*xs) )
b=s.mean(ys)-m*s.mean(xs)
return m,b
m,b = best_fit_slope_and_b(xs, ys)
print(m,b )
# below line causses error
rl=[ m(m*x)+b for x in xs]
答案 0 :(得分:1)
问题出在写乘法的方式上。
m(m*x)
与m*(m*x)
不同,因为m()
在可能为数字时被解释为一个函数。此外,如果是这样,您还可以这样做:
m**2 * x