gpt4 book ai didi

list - python : Find all pairwise distances between points and return points along with distance

转载 作者:行者123 更新时间:2023-12-02 03:08:41 33 4
gpt4 key购买 nike

我有一个列表,其中包含具有 3D 名称和坐标的点列表。类似这样的列表长度要长得多:

group=[[gr1, 5, 8, 9], [gr2, 7, 4, 5], [gr3, 3, 8, 1], [gr4, 3, 4, 8]]

我想计算坐标之间的所有可能的成对距离,并返回距离和相应的点。是这样的:

distances=[[gr1, gr2, 6.],[gr1, gr3, 8.24621125], [gr1, gr4, 4.58257569], [gr2, gr3, 6.92820323], [gr2, gr4, 5.], [gr3, gr4, 8.06225775]]

我尝试使用 scipy.spatial.distance.pdist 但它只返回给我这个

array([ 6.        ,  8.24621125,  4.58257569,  6.92820323,  5.        ,
8.06225775])

如何提取信息以及针对每个距离值考虑的组

我是初学者,我正在使用 python 3。谢谢

最佳答案

也许您可以尝试使用两个嵌套的 for 循环将“组”中除最后一个元素之外的每个元素与右边的所有其他元素组合起来:

group=[["gr1", 5, 8, 9], ["gr2", 7, 4, 5], ["gr3", 3, 8, 1], ["gr4", 3, 4, 8]]

distances=[]

for i,g in enumerate(group[:-1]):
for h in group[i+1:]:
d = ((g[1]-h[1])**2+(g[2]-h[2])**2+(g[3]-h[3])**2)**0.5
distances.append([g[0],h[0],d])

print(*distances,sep="\n")

结果:

['gr1', 'gr2', 6.0]
['gr1', 'gr3', 8.246211251235321]
['gr1', 'gr4', 4.58257569495584]
['gr2', 'gr3', 6.928203230275509]
['gr2', 'gr4', 5.0]
['gr3', 'gr4', 8.06225774829855]

关于list - python : Find all pairwise distances between points and return points along with distance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41057516/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com