可以直接用
np.linalg.norm 中的二类范式计算距离
比如data为所有数据点,idx为当前簇的索引,c为簇的位置,c为所有簇的集合,labels为所有数据点所在的簇
for i, c in enumerate(centroids): #
idx = np.where(labels == i)[0] #idx为属于该簇的所有数据点
dist = np.linalg.norm(data[idx] - c, axis=1).sum() #norm为求范数
cluster_distance += cluster_distance
error += dist
error /= (len(centroids)*len(idx)) #erorr为簇间距离
上面就是计算簇间距离的公式。