两个坐标列表的欧几里得距离矩阵

Posted

技术标签:

【中文标题】两个坐标列表的欧几里得距离矩阵【英文标题】:Euclidean distance matrix of two list of coordinates [duplicate] 【发布时间】:2021-12-21 07:25:38 【问题描述】:

我正在尝试获取一个包含两个列表中点之间距离的矩阵。

点的向量包含经纬度,任意两点之间的距离可以用欧几里得函数计算

我已经设法在两个特定坐标之间进行计算,但需要针对每个可能的商店-仓库距离遍历列表。

关于如何进行的任何建议? :)

wh_coords=[(134,104),(141,82),(128,29),(120,49),(56,104),(14,60),(16,51),(17,94),(50,102),(44,99)]
st_coords=[(53,138),(79,130),(72,76),(53,3),(85,111),(102,39),(122,18),(147,7),(40,150),(46,19),(57,19),(88,113)]

import math
def calc_euc_dist(point_1, point_2): 
   distance = math.sqrt((point_1[0] - point_2[0])**2 + (point_1[1] - point_2[1])**2)
   return(distance)
   
point_1=(134,53)
point_2=(104,138)

distance1_2=calc_euc_dist(point_1, point_2)
print(distance1_2) ´´´

【问题讨论】:

【参考方案1】:

itertools.product

具体来说:

import itertools
for point_1,point_2 in itertools.product(wh_coords, st_coords):
    print(point_1,point_2, calc_euc_dist(point_1, point_2))

https://docs.python.org/3/library/itertools.html#itertools.product

【讨论】:

以上是关于两个坐标列表的欧几里得距离矩阵的主要内容,如果未能解决你的问题,请参考以下文章

计算两个python数组之间的欧几里得距离

在大数据的两个矩阵之间的所有列之间应用配对欧几里得距离

在 Python 中使用随机点制作欧几里德距离矩阵

欧几里得距离两个像素,每个像素属于不同的图像

从点列表中成对欧几里德距离

两个点的欧几里得距离公式