9得票2回答
使用KDTree.query_ball_tree如何在x,y网格中找到点集

我正在使用Python编程,有两个numpy数组x和y组成的网格。我需要找到距离(x1,y1)点r距离的点。Scipy提供了一个函数KDTree.query_ball_tree,该函数需要一个KD树对象(可以从numpy数组中构建)和距离r作为输入,但我无法理解其工作原理。 例如,考虑以下点...

9得票3回答
高效处理2D线段的方法

我有一大堆二维线段,所以我知道每条线段的线号,起始点(X,Y,Z)和结束点(x,Y,Z)。我想要为给定的线段获取相邻线段。同样适用于所有线段。 为了找到相邻线段,我可以应用this 如果我说我的数据是这样的; 所以,最后我想要每个线段的相邻线段作为向量。我听说可以使用r树数据结构获取这种...

11得票3回答
四叉树和Kd树

我有一组各地位置的纬度和经度信息,也知道我的当前位置的纬度和经度。我需要找出最靠近我的当前位置的地点。 Kdtree和quadtree中哪个算法是从纬度和经度信息集中查找邻近位置最好的? 其中一个算法相对于另一个算法的优点是什么? 我们如何在C#中实现这些算法以实现上述目的? Not...

8得票2回答
在Python中从k-d树中删除根节点

对于一个新手来说,我不明白如何在递归函数内部删除类的实例。 考虑这段 k-d Tree 的代码: def remove(self, bin, targetAxis=0, parent=None): if not self: return None elif self.dat...

7得票2回答
如何使用Python加速最近邻搜索?

我有一段代码,可以计算距离(未被分配的)最近的体素到一个已赋值的体素的距离。我有一个体素数组,其中一些体素已经被标量(1、2、3、4等)赋值,而一些体素为空(假设值为“0”)。下面的代码会找到距离未分配的体素最近的已分配的体素,并将该体素分配相同的标量。因此,标量为'0'的体素将根据最近的体素...

16得票1回答
使用SciKit-learn和SciPy构建/搜索K-最近邻居的速度

我有一组大量的二维点,并希望能够快速查询2D空间中任何点的k个最近邻居。由于是低维度的,使用KD-Tree似乎是一个不错的选择。我的初始数据集很少更新,因此对于查询点的时间比建立时间更重要。但是,每次运行程序时,我都需要重新加载对象,因此我还需要一种可以快速保存和重新加载的结构。 两个可用的...

13得票3回答
如何遍历KD树以找到k个最近邻居?

这个问题涉及到KDTrees的KNN搜索实现。遍历KDTree以找到最佳匹配(最近邻)很简单,类似于修改后的二分搜索。 如何修改遍历以全面且高效地找到K个最佳匹配(KNN)? 澄清编辑: 在找到输入查询I的最近节点M后,遍历算法如何继续找到剩余的K-1个最接近的查询匹配?是否有一种遍历模式...

9得票1回答
调整Scikit-Learn KNN中的leaf_size以减少时间消耗

我是一名有用的助手,可以为您翻译文本。以下是需要翻译的内容: 我试图实现手写字符识别的KNN算法,但发现代码执行时间较长。当我添加了参数leaf_size并将其值设为400时,我观察到代码执行所需的时间显著减少。 原始代码: knn = KNeighborsClassifier(n_ne...

14得票4回答
kd树与八叉树在三维半径搜索中的比较

我试图确定哪种结构更适合进行多个点的半径搜索,kd-tree还是octree?这已经在这个问题中提到过,但没有答案。在我的看法中,由于octree对于叶子节点有固定的大小,因此可以计算出需要访问的分支,而对于kd-tree,则需要迭代地访问分支,直到覆盖半径。

55得票11回答
Java中的KDTree实现

我正在寻找Java中的KDTree实现。 我已经进行了谷歌搜索,结果似乎相当杂乱。虽然有许多结果,但它们大多只是一次性的小实现,我希望能找到一些更具“生产价值”的东西。像Apache集合或.NET的优秀C5集合库之类的东西。这样我就可以看到公共错误跟踪器,并检查上次SVN提交发生的时间。在理想...