基于距离而不是邻居的KNN

问题描述 投票:0回答:1

我有三列,我需要按如下所示查找值附近

A            B        Distance

point_a    point_b      20

point_a    point_c      30

point_a    point_d      40

point_a    point_e      25

point_g    point_a      26


point_c    point_d      30

point_c    point_e      30


point_d    point_e      40

我需要找到所有附近的点

例如,如果我想在28英里内找到point_a附近的所有点,将是point_b,e点和g点

python knn
1个回答
0
投票

例如,您可以使用简单的pandas查询,不需要任何机器学习算法:

result = df.query("(A == 'point_a' | B == 'point_a') & Distance < 28")

result = df[((df['A'] == 'point_a') | (df['B'] == 'point_a')) & (df['Distance'] < 28)]

结果:

         A        B  Distance
0  point_a  point_b        20
3  point_a  point_e        25
4  point_g  point_a        26

获取一组最近的点:

result = result[['A', 'B']].stack().unique().tolist()
result = set(result)
result.remove('point_a')

结果:

{'point_e', 'point_g', 'point_b'}
© www.soinside.com 2019 - 2024. All rights reserved.