У меня есть код, который фильтрует точки из списка, где расстояние между ними меньше 3:
import numpy
lst_x = [0,1,2,3,4,5,6,7,8,9,10]
lst_y = [9,1,3,2,7,6,2,7,2,3,8]
lst = numpy.column_stack((lst_x,lst_y))
diff = 3
new = []
for n in lst:
if not new or ((n[0] - new[-1][0]) ** 2 + (n[1] - new[-1][1]) ** 2) ** .5 >= diff:
new.append(n)
Проблема в том, что на выходе получаются:
[array([0, 9]), array([1, 1]), array([4, 7]), array([6, 2]), array([7, 7]), array([8, 2]), array([10, 8])]
точка [6,2]
и [8,2]
ближе чем 3 друг к другу, но они находятся в результатах, я думаю, это потому, что цикл for проверяет только одну точку, а затем переходит на следующую.
Как я могу проверить это?все числа в каждой точке.