这是我的代码:
def lsf2(x,y):
N = 100
A = (sum(x)*sum(y))/(sum(x)*(1-n))
B = (sum(y)-N*A)/sum(x)
delta = N*(sum(x**2)*sum(y))- sum(x)*sum(x*y)
sigy = (sum(y-A-B*x)**2/(N-2))**0.5
siga = sigy(sum(x)**2)/delta
sigb = sigy*(N/delta)**0.5
return A, B, sigy, siga, sigb
A, B, sigy, siga, sigb = lsf2(xdata, ydata)
print(A, B, sigy, siga, sigb)
我得到的错误是这样的:
----> 7 siga = sigy(sum(x)**2)/delta
TypeError: 'numpy.ndarray' object is not callable
最佳答案
你有:
sigy = (sum(y-A-B*x)**2/(N-2))**0.5
siga = sigy(sum(x)**2)/delta
sigy
是一个 numpy 数组。当您输入 sigy(sum(x)**2)/delta
时,您尝试传递 sum(x)**2
作为输入,就好像 sigy
一样code> 是一个函数但它不是。
也许您需要:
siga = sigy*(sum(x)**2)/delta # multiplication
或
siga = sigy**(sum(x)**2)/delta # power
关于python - 我在定义函数时做错了什么,导致错误 "numpy.ndarray"不可调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58420881/