这是我写的kmeans。我想循环调用这个函数,反复计算到中心点的距离,并输入返回值作为参数
第一个输入是(b[0,:],b[1,:])
def DIV(point1,point2):
plt.figure()
c = []
d = []
for i in range(1000):
dist1 = np.linalg.norm(Z[i] - point1)
dist2 = np.linalg.norm(Z[i] - point2)
if dist1 > dist2:
c.append(Z[i])
else:
d.append(Z[i])
C = np.array(c)
D = np.array(d)
plt.scatter(C[:,0],C[:,1],s=16.,color='green')
plt.scatter(D[:,0],D[:,1],s=16.,color='yellow')
center1 = C.mean(axis=0)
center2 = D.mean(axis=0)
plt.scatter(center1[0],center1[1],marker ='x',s=16.,color='red')
plt.scatter(center2[0],center2[1],marker ='x',s=16.,color='red')
return center1,center2
我使用了非常麻烦的循环和函数来控制它的迭代
你的功能和背景并不重要,听起来你基本上是在根据你对我的评论的反应来做一个“定点”功能:
对于您的具体情况,您可以编写
如果您想使用相同的内联逻辑,而不是使用更通用的逻辑,您可以编写
相关问题 更多 >
编程相关推荐