You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过kdtree返回的树索引查询对应点的坐标信息

实现方法

核心逻辑非常简单:构建KD树时输入的原始点集的下标,和KD树返回的树索引是完全一一对应的,直接用返回的索引到原始点数组中取值即可。
下面以Python常用的scipy.spatial.KDTree为例给出完整示例:

  • 第一步:准备原始二维点集、构建KD树
import numpy as np
from scipy.spatial import KDTree

# 示例原始二维点集,shape为(点数量, 2)
points = np.array([
    [1, 2], [3, 4], [5, 6], [7, 8],
    [2, 1], [4, 3], [6, 5], [8, 7],
    [9, 1], [1, 9]
])
# 构建KD树
kdtree = KDTree(points)
  • 第二步:执行最近邻查询,获取距离和索引列表
# 示例查询点
query_point = [4.1, 3.2]
# 查询最近的8个邻居,返回距离列表和索引列表
distances, indices = kdtree.query(query_point, k=8)
# 打印返回的8个索引看结果
print("返回的树索引列表:", indices)
  • 第三步:用索引获取对应点的x-y坐标
# 比如要拿indices列表中第2个位置的索引对应的坐标
target_idx = indices[2]
# 直接从原始点集取即可,这里x_y就是目标点的[x, y]坐标
x_y = points[target_idx]
print(f"索引{target_idx}对应的坐标:", x_y)

注意:如果是其他语言的KD树实现,只要是标准的最近邻查询逻辑,规则都是通用的:返回的索引一定对应你构建树时传入的原始点序列的位置,不需要额外调用KD树的接口查坐标,直接访问原始点集是效率最高的方式。

内容的提问来源于stack exchange,提问作者Dan Schwartz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 07:36:02