向量化到一组点的距离之和

2024-03-28 12:06:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python/NumPy实现一个k-medoids集群算法。作为这个算法的一部分,我必须计算出从物体到它们的“类星团”的距离之和。在

我有一个五点距离矩阵

n_samples = 5
D = np.array([[ 0.        ,  3.04959014,  4.74341649,  3.72424489,  6.70298441],
              [ 3.04959014,  0.        ,  5.38516481,  4.52216762,  6.16846821],
              [ 4.74341649,  5.38516481,  0.        ,  1.02469508,  8.23711114],
              [ 3.72424489,  4.52216762,  1.02469508,  0.        ,  7.69025357],
              [ 6.70298441,  6.16846821,  8.23711114,  7.69025357,  0.        ]])

一组初始的类圆管

^{pr2}$

以及集群成员资格

cl = np.array([0, 0, 1, 1, 0])

我可以用

>>> np.sum(D[i, medoids[cl[i]]] for i in xrange(n_samples))
10.777269622938899

但它使用Python循环。我是不是缺少了计算这个和的向量化习惯用法?在


Tags: numpy算法距离clnp集群矩阵array