我正在使用 Python,并且我有一个 Pandas 数据框,其中包含数十万(如果不是数百万)坐标。我正在寻找一种有效的方法来索引原始数据帧,以便我只剩下在给定点一定距离内的条目这不一定在坐标集中。
最简单但肯定最昂贵的方法是在每个向量之间构建一个向量点和点,取范数,只保留那些在截止距离内的。不过,对于数百万点,因为我必须这样做几十次,这似乎非常低效。
什么是最佳但仍然有些直观的方法来做到这一点?
我正在使用 Python,并且我有一个 Pandas 数据框,其中包含数十万(如果不是数百万)坐标。我正在寻找一种有效的方法来索引原始数据帧,以便我只剩下在给定点一定距离内的条目这不一定在坐标集中。
最简单但肯定最昂贵的方法是在每个向量之间构建一个向量点和点,取范数,只保留那些在截止距离内的。不过,对于数百万点,因为我必须这样做几十次,这似乎非常低效。
什么是最佳但仍然有些直观的方法来做到这一点?
您可以使用Morton 键控对坐标位置进行排序,方法是将坐标位置分箱为特定大小的立方体. 这是一手术。然后,给定任意点 P,你可以使用它的 Morton 键只搜索一小部分附近的盒子,以您的距离标准为界。每个框的搜索是.
您可以使用任何数据结构进行最近邻搜索;有很多可能性,有不同的权衡。您可以权衡空间与查询时间与使用新点更新数据结构的效率。具体来说,您的问题是fixed-radius near neighbor search。大多数最近邻搜索的数据结构都支持这种查询。