У меня 73 000 точек с координатами (x, y) в пространстве 2200x1700 Я хочу сгруппировать все точки (x, y), которые попадают в круг с радиусом 35 единиц.Для этого мне нужно запустить вложенные циклы, имеющие временную сложность O (73000x73000), так как я вычисляю расстояние между каждой точкой и группирую точки, чье вычисленное расстояние меньше 35.
Мне нужен оптимизированныйрешение для этого!
temp_cluster=cluster
for key,value in cluster.items():
pointa=np.array((key[0],key[1]))
for key2,value2 in temp_cluster.items():
pointb=np.array((key2[0],key2[1]))
distance=np.linalg.norm(pointa-pointb)
if(distance<=35):
cluster[(key[0],key[1])]=cluster[(key[0],key[1])]+1## here we are counting how many points lies within a radius of 35 for that particular point