我是python的新手,所以这听起来可能是个愚蠢的问题。
脚本:
我有一个cluster类,在创建它的实例时,我给它提供了两个默认值,这两个值只是质心的坐标,它将是tyfrom checkbox.lib.text import split
class point:
x=0
y=0
def toString(self):
return (self.x+ ':'+self.y)
def __init__(self,a,b):
self.x=a
self.y=b
class cluster:
points=[]
centroid= point
def __init__(self,a,b):
centroid= point(a,b)
def kMeans(lis,k):
length=len(lis)
clusters=[]
for i in range(k):
clusters.append(cluster(2*i,2*i))
print clusters[i].centroid.toString()
for pt in lis:
min=10
centroidNum=0
for i in range(k):
dist=(abs(int(pt.x)- int(clusters[i].centroid.x))) +abs((int(pt.y) - int(clusters[i].centroid.y)))
if dist
min=dist
centroidNum=i
clusters[centroidNum].points.append(pt)
for cl in clusters:
print "Clusters"
for pt in cl.points:
print pt.toString()
def readValues():
try:
fileHandler = open('/home/sean/input/k_means.txt', 'r')
for line in fileHandler:
tokens=split(line,",")
if len(tokens) == 2:
tempObj=point(tokens[0].strip(),tokens[1].strip())
list.append(tempObj)
except IOError:
print "File doesn't exist"
if __name__ == '__main__':
list=[]
readValues();
kMeans(list,3)
我正在尝试将值赋给形心,从而传入构造函数。但我得到了以下错误:
unbound method toString() must be called with point instance as first argument (got nothing instead)
我希望质心是一个点,这样我就可以在程序的其余部分进行访问。
请帮助我如何给形心赋值
输入文件在表单中有点
1,2
3,5个
4,3个