代码之家  ›  专栏  ›  技术社区  ›  Er g Ch

在使用kdtree时,有没有一种简单的方法可以避免重复计算?

  •  0
  • Er g Ch  · 技术社区  · 2 年前

    例如:

    from scipy.spatial import KDTree
    import numpy as np
    
    data= np.random.rand(10,3)  # 10 points in space
    kdtree=KDTree(data)
    dist,points=kdtree.query(data,4) # find nearest 4 points of each point(including themselves)
    

    points 输出:

    array([[0, 9, 6, 4],
           [1, 7, 4, 3],
           [2, 3, 8, 5],
           [3, 7, 1, 2],
           [4, 9, 1, 6],
           [5, 8, 3, 2],
           [6, 9, 0, 4],
           [7, 1, 3, 4],
           [8, 5, 0, 3],
           [9, 6, 0, 4]])
    

    全部正确。 point 0 (0,9),(0,6),(0,4) point 9 ,有 (9,0) (0,9) ,相同 (0,6) (6,0) .

    point j 被视为另一个邻居 point i 仅当其位于 第一点 .

    KDtree 到相应的上半空间点,这对于具有多个点的大系统来说并不简单和快速。

    那么,有没有一种简单的方法可以避免在使用时重复计算 kdtree ? 比如只在某个空间范围内寻找最近的邻居?

    0 回复  |  直到 2 年前