你好吗?我想编写程序,但它给我的属性错误。我是python的新手,我会很感激你的帮助。 导入pylab,随机
def rSquare(measured, estimated):
diffs = (estimated - measured)**2
mMean = measured.sum()/float(len(measured))
var = (mMean - measured)**2
return 1 - diffs.sum()/var.num()
numPts = 7
points = ()
xVals = pylab.arange(numPts)
for x in xVals: points.append(x + random.random())
points = pylab.array(points)
pylab.scatter(xVals, points)
a1,b1 = pylab.polyfit(xVals, points, 1)
estVals1 = a1*xVals + b1
print 'Linear fit to points:', rSquare(points, estVals1)
pylab.plot(xVals, estVals1, c = 'b')
a,b,c,d,e,f = pylab.polyfit(xVals, points, 5)
estVals5 = a*(xVals**5) + b*(xVals**4) + c*(xVals**3) + d*(xVals**2) + \
e*xVals + f
print '5th order fit to same points:', rSquare(points, estVals5)
pylab.plot(xVals, estVals5, c = 'r')
pylab.show()
请检查错误
Traceback (most recent call last):
Documents\python files\squaremean.py", line 12, in <module>
for x in xVals: points.append(x + random.random())
AttributeError: 'tuple' object has no attribute 'append'
元组是不可变的。使用列表:
或每次创建一个新元组:
或者只创建一次整个元组:
或者直接使用numpy:
相关问题 更多 >
编程相关推荐