【问题标题】:How can I retrieve the coordinates of a point in a kdtree given that point's tree index?给定该点的树索引,如何检索 kdtree 中某个点的坐标?
【发布时间】:2021-09-09 07:37:23
【问题描述】:

例如,假设我从二维数组中的点创建了一个 kdtree。然后我在某个点(表示为一对 x-y 坐标)上运行最近邻查询,询问该点的 8 个最近邻。这将返回两个列表:(1) 到给定品脱的邻居的 8 个距离列表,以及 (2) 这些邻居的树索引列表。

现在假设我想获取其中一个树索引并获取该点的 x-y 坐标?我该怎么做?

【问题讨论】:

    标签: python kdtree


    【解决方案1】:

    如果有人感兴趣,我的一位学生提供了答案。没有返回此信息的 kdtree 方法,但您可以从用于创建树的原始列表中获取它。用于构建树的点的 x-y 坐标取自两个列表,一个是 x 坐标,另一个是 y 坐标。然后,当你做一个 kdtree 查询时,查询返回的索引列表可以作为两个原始列表的索引,以取回原始的 x-y 对。

    【讨论】:

      【解决方案2】:

      仅供参考,有一个 data 属性包含树的坐标:https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.cKDTree.html

      所以你可以通过

      获得你的坐标
      tree.data[index]
      

      这是一个完整的例子:

      import numpy as np
      from scipy.spatial import KDTree
      
      pts = np.array([(1, 1), (2, 1), (3, 1), (4, 1), (1, 2), (2, 2), (3, 2), (4, 2), (1, 3), (2, 3), (3, 3), (4, 3), (1, 4), (2, 4), (3, 4), (4, 4)])
      
      # Build tree
      tree = KDTree(pts)
      
      # Query tree for points within distance=2 of (1,1)
      idx = tree.query_ball_point([1,1],r=2)
      print(idx)
      

      产生

      [0, 4, 8, 1, 5, 2]
      

      然后得到这些指标的坐标,

      # Get coordinates of the indices
      print(tree.data[idx])
      [[1. 1.]
       [1. 2.]
       [1. 3.]
       [2. 1.]
       [2. 2.]
       [3. 1.]]
      

      【讨论】:

      • 你能提供一个例子来说明如何使用它吗?我已多次阅读该 scipy.spatial.cKDTree.html 页面,但没有看到任何提及。另外,您是否碰巧知道我在哪里可以找到有关此 scipy 包的文档或教程。你引用的那个网页,我以前看过,几乎完全看不懂。
      • 添加示例。文档是我在找到您的帖子后发现此“功能”的地方,所以我不知道我是否同意它们难以理解。但是,您确实需要知道 Python 对象的属性是什么,它才有意义。
      • 这很有帮助,感谢您不厌其烦地写下所有这些内容。我认为我永远无法从那个 scipy 网页上得到这个,但我必须承认我仍在学习 Python。
      • 不用担心。我花了一些时间来理解类(这就是“树”是什么),但它们只是存储数据(属性)和函数(方法)的存储桶。如果您使用带有选项卡自动完成功能的 IDE(如 Spyder),您可以键入“tree”。并查看可用于树对象的方法和属性。如果这回答了问题,请接受答案:)
      • 我如何“接受答案”。我在此网页上没有看到任何关于此的内容。
      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 2018-01-01
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多