我试图用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循环。我是不是缺少了计算这个和的向量化习惯用法?在
怎么样:
相关问题 更多 >
编程相关推荐