np.sqrt(((X - centers[:, np.newaxis])**2).sum(axis=2))
时间: 2024-06-02 16:08:36 浏览: 116
中心度算法演示
这段代码是用来计算每个数据点与聚类中心的欧几里得距离的。具体来说,它的输入是一个二维的数据矩阵 X 和一个一维的聚类中心数组 centers,输出是一个二维矩阵,其中第 i 行第 j 列的元素表示第 i 个数据点与第 j 个聚类中心的欧几里得距离。
这段代码的实现方式是,首先将每个数据点在第二个维度上扩展一维,使其变成一个三维矩阵。然后计算每个数据点与每个聚类中心的欧几里得距离,即计算三维矩阵中每个元素的欧几里得距离。最后在第三个维度上求和,得到一个二维矩阵,即每个数据点与每个聚类中心的欧几里得距离。这里使用了 numpy 的广播机制,使得代码非常简洁高效。
阅读全文