我目前正在寻找一种方法来构建几个 kd 树以快速查询一些 n 维数据。但是,我对 scipy KD 树算法有一些问题
我的数据包括id -> {data: somedata, coordinate: x, y}
我希望能够基于坐标和 k 最近邻居的 id 进行查询,并获取固定半径邻居的 id。从KDTree和cKDtree的scipy实现来看,这是不可用的。
我的其他选择是编写我自己的 KD 树,这不会那么好,因为我只是我,或者......?
从玩弄KDTree http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.KDTree.html,看起来它坚持要向其构造函数提供一个类似 2D numpy 数组的对象,但 API 返回该数组的索引。此外,您不能只是将数据随意修补到各个坐标上。
但是,您仍然可以利用 KDTree 的核心功能。您需要将对象拆分为附加数据对象的并行列表,以及 KDTree 看到的坐标的 numpy 数组。当它说返回某些搜索的第三个点时,您知道它对应于附加数据对象列表中的第三个索引。
当然,它比一个 API 更尴尬,它会给你一个 key 函数来提供任意对象的坐标,类似于如何将 key 传递给 python 排序函数,但它比滚动你自己的 KDTree 实现要好得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)