【发布时间】:2022-01-17 13:19:03
【问题描述】:
我想计算数组中数据点之间的距离。
例子
A1 = array([[ 54. , 15. , 1. ],
[ 55. , 13.66311896, 1. ],
[ 56. , 10.16311896, 1.95491503],
[ 57. , 5.83688104, 4.45491503], # shape 6rows x 3 col
[ 58. , 2.33688104, 7.54508497],
[ 59. , 1. , 10.04508497],
[ 60. , 1. , 11. ],
现在,我想计算第 1 列和第 2 列中的点之间的距离。所有距离都应该从第 0 行计算,即,(x1,y1 = 15,1) 但 x2,y2 是可变的第 1 行到第 6 行的元素。我想将此距离保存为“列表”。请帮我在python中解决这个问题
【问题讨论】:
-
请在此处发布您的minimal reproducible example。如果您告诉我们到目前为止您已经尝试过什么以及遇到了哪些错误或问题,我们会更容易为您提供帮助。
-
dist_matrix = ((A1.reshape(N_points_in_A1, 1, dim_of_point) - A2.reshape(1, N_points_in_A2, dim_of_points))**2).sum(2)**0.5。 dist_matrix[i, j] 将包含 A1 中的点 i 与 A2 中的点 j 的距离
-
感谢您的评论@yann。您能否解释一下
((A1.reshape(N_points_in_A1, 1, dim_of_point) - A2.reshape(1, N_points_in_A2, dim_of_points))**2).sum(2)**0.5. dist_matrix[i, j]中的 dim_of_points 和 sum(2) 是什么
标签: python arrays numpy distance