【发布时间】:2019-07-04 02:13:26
【问题描述】:
我在 pandas 数据框中有大量数据点,其中的列包含这些点的 x/y 坐标。我想识别与数据框中任何其他点相距一定距离“d”的所有点。
我首先尝试使用“for”循环来执行此操作,检查第一个点与所有其他点之间的距离,然后检查第二个点与所有其他点之间的距离,等等。显然这对于大数据不是很有效放。
最近在线搜索表明最好的方法可能是使用 scipy.spatial.ckdtree,但我无法弄清楚如何实现这一点。我看到的大多数示例都针对单个 x/y 位置进行检查,而我想检查全部与全部。是否有人能够提供建议或示例,从我的数据框中获取的 x/y 坐标数组开始,如下所示:
points = df_sub.loc[:,['FRONT_X','FRONT_Y']].values
看起来像这样:
[[19091199.587 -544406.722]
[19091161.475 -544452.426]
[19091163.893 -544464.899]
...
[19089150.04 -544747.196]
[19089774.213 -544729.005]
[19089690.516 -545165.489]]
理想的输出将是彼此之间的截止距离“d”内的所有点对的 ID。
【问题讨论】: