Python Scipy kd树,为每个点分配辅助标识符

Python Scipy kd树,为每个点分配辅助标识符,python,numpy,scipy,kdtree,Python,Numpy,Scipy,Kdtree,我试图建立一个kd树与三维坐标有任意整数分配给他们。例如一个元组([34534.6542410957.00023,-79.154323],32) 但是,我不知道如何将scipy.spatial.cKDTree()与numpy数组一起使用。 标识符甚至可以是numpy数组中的第四个字段,但树只能基于前三个坐标构建。 有人能解释一下吗? 其目的是将kd树节点引用回它所属的段,以便以后进行比较 谢谢大家! 由于树结构以及查询的答案都是以索引而不是值的形式给出的,因此您可以简单地将标签以相同的顺序保存在

我试图建立一个kd树与三维坐标有任意整数分配给他们。例如一个元组([34534.6542410957.00023,-79.154323],32)

但是,我不知道如何将scipy.spatial.cKDTree()与numpy数组一起使用。
标识符甚至可以是numpy数组中的第四个字段,但树只能基于前三个坐标构建。 有人能解释一下吗? 其目的是将kd树节点引用回它所属的段,以便以后进行比较


谢谢大家!

由于树结构以及查询的答案都是以索引而不是值的形式给出的,因此您可以简单地将标签以相同的顺序保存在单独的数组中

演示:


这个解决方案一直摆在我面前。谢谢
a = np.random.rand(100, 3)
t = cKDTree(a)
t.tree.indices
# array([13, 12, 18, 19, 20, 47, 54, 55, 83, 88, 82, 40, 31, 10, 45, 22, 15,
#        95, 76, 46, 94, 62,  5, 84, 74, 63, 80, 81, 59,  9, 34, 29, 71, 61,
#        73,  4, 85,  0, 16, 39, 35, 26, 53, 69, 77,  6, 36, 97, 57, 78, 90,
#        32, 38, 68, 65, 96,  3, 24, 66, 11, 86, 89, 91, 30, 67, 42, 28, 33,
#         7, 44,  8, 17, 60, 56, 41, 43, 92, 51, 58,  2, 93, 21, 14, 64, 70,
#        87, 72, 50, 25, 49, 98, 37, 99, 52,  1, 48, 75, 79, 23, 27])

t.query_pairs(0.1)
# {(20, 55), (48, 98), (6, 35), (38, 89), (98, 99), (26, 39), (45, 84), (26, 53), (37, 48), (48, 99), (15, 46), (36, 97), (14, 87), (42, 56), (37, 99), (5, 94), (71, 73), (0, 85), (70, 72), (22, 74), (37, 98)}