【发布时间】:2018-12-13 18:43:04
【问题描述】:
我有 n 个点,我必须计算每个点与剩余 n-1 个点之间的欧几里得距离。我在python中使用了以下方法:
for eachRow in range(0, numberOfPoints):
distanceProximityMatrix.append([])
print('Initialisation Completed')
for i in range(0, numberOfPoints):
if(i%100 == 0) : print('.', end = '')
for j in range(i, numberOfPoints):
if(i != j):
tempDist = distanceForMultivariate(recordsList[i], recordsList[j], attributesToBeUsed, isFirstColumnID = isFirstColumnID)
distanceProximityMatrix[i].append(tempDist)
distanceProximityMatrix[j].append(tempDist)
else :
distanceProximityMatrix[i].append(0)
有没有更快的方法来做到这一点,因为我的积分数量很大,而且这个策略需要很长时间。
注意:distanceForMultivariate 函数计算欧式距离。
【问题讨论】:
-
你对这些距离做了什么?也许您不需要所有这些?
-
@kutschkem 对于每个 i th 点,我想找到 k 个最近的点。
标签: python distance euclidean-distance