首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找最大和距离

寻找最大和距离
EN

Stack Overflow用户
提问于 2017-12-01 13:36:55
回答 0查看 367关注 0票数 2

这是我的数据:

代码语言:javascript
复制
a = (9,5,3)
b = (5,3,6)
c = (1,6,6)
d = (2,5,0)
e = (9,8,3)
f = (7,3,6)
g = (2,15,1)
data = [a,b,c,d,e,f,g]

我有7个数据点,在这里我想得到三个数据( top-k =3),它可以是(a,b,c或其他点),它到其他点的距离最大/top-k最大不同。

代码语言:javascript
复制
from scipy.spatial import distance
d = distance.euclidean(a,b)

k = 3
i = 1
distancelist = []
max_dist = []
while (i < k):
    for x in (data):
        for y in (data):
            dist = distance.euclidean(x,y)
            distancelist.append(dist)
            # stuck in here
            max_dist = #
    i = i+1
print(max_dist)

我坚持,如何获得距离的最大值,并弹出到max_dist

预期输出:

代码语言:javascript
复制
[(9, 8, 3),(2, 15, 1),(5, 3, 6)] #I just choose these as random, I don't know the exact result

例如:

第一个子集:总距离18.987490074177131

代码语言:javascript
复制
# combination (a,b,c) or [(9,5,3),(5,3,6),(1,6,6)]
distance.euclidean(data[0], data[1]) + distance.euclidean(data[1], data[2]) + distance.euclidean(data[0], data[2])

第二个子集:总距离20.000937912998413

代码语言:javascript
复制
# combination (a,b,d) or [(9,5,3),(5,3,6),(2,5,0)]
distance.euclidean(data[0], data[1]) + distance.euclidean(data[1], data[3]) + distance.euclidean(data[0], data[3])

第二个子集比第一个子集更好,因为第二个子集的总距离值更大,我想得到最大距离是所有组合中的最大值的子集(top-k=3)。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47587246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档