在二维numpy数组中查找最邻近坐标的方法求助
解决方法:在NumPy中查找最邻近坐标
直接用NumPy的数组运算就能高效解决这个问题,步骤如下:
完整代码示例
import numpy as np # 你的二维坐标数组 points = np.array([ [77.62881735, 12.91172607], [77.6464534, 12.9230648], [77.65330961, 12.92020244], [77.63142413, 12.90909731] ]) # 目标坐标 target = np.array([77.64000112, 12.91602265]) # 计算每个点与目标点的欧氏距离平方(无需开根号,不影响最小值判断) distances_sq = np.sum((points - target) ** 2, axis=1) # 找到距离最小的点的索引 closest_idx = np.argmin(distances_sq) # 获取最邻近的坐标 closest_point = points[closest_idx] print("最邻近的坐标:", closest_point)
步骤解释
- 导入NumPy:NumPy是处理数值数组的核心库,必须先导入。
- 定义数组:将你的二维坐标集合和目标坐标分别定义为NumPy数组。
- 计算距离平方:对每个点与目标点做差、平方后按行求和,得到每个点的欧氏距离平方(用平方代替完整欧氏距离是为了减少计算量,结果不影响最小值的选取)。
- 查找最小距离索引:用
np.argmin()获取距离平方最小的元素对应的索引。 - 提取结果:通过索引从原二维数组中取出对应的坐标,就是最邻近的点。
运行上述代码,输出的结果为 [77.6464534 12.9230648],这就是与目标坐标最接近的点。
内容的提问来源于stack exchange,提问作者Sudhanwa
相关产品推荐
相关产品推荐

