如何使用numpy确定矩阵中哪个元素最接近给定点?

yvfmudvl  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(113)

我有一个由(x,y)坐标组成的矩阵 data,看起来像这样:

array([[3,4], [10,4], [1,3], [5,8]])

我想写一段代码,给定一个通用坐标为(x,y)的numpy数组,找到矩阵中与(x,y)最近的点对应的行的索引(用欧几里得距离表示)。
到目前为止我所做的是:

point = np.asarray([x, y])
closest_pt_idx = np.argmin(np.linalg.norm(np.subtract(data, point), axis=1))

由于某种原因,这似乎不太好用。我做错了什么?

gojuced7

gojuced71#

可能有一个单行线。

import numpy as np
data = np.array([[3,4],[10,4],[1,3],[5,8],[2,3]])
point = np.tile([2,3], (len(data),1))
closest_pt_idx = np.argmin(np.linalg.norm(data-point,axis=1))
print(np.linalg.norm(data-point,axis=1),closest_pt_idx)

相关问题