На самом деле эта задача будет намного сложнее, как вы думаете
Чтобы найти похожих значений, вам необходимо работать с расстояниями между этими значениями, и если расстояние меньше определенного порогового значения, они считаются "похожими".
Но это становится действительно трудно, если есть еще подобное расстояние.
Мои мысли, представьте следующие данные:
![enter image description here](https://i.stack.imgur.com/yuzB0.png)
Если вы определите, что расстояние <= 0.02
считается одинаковым, то следующие пары считаются одинаковыми:
![enter image description here](https://i.stack.imgur.com/MCukw.png)
Сценарий 1
Вы начинаете сравнение сверху и обнаруживаете, что 412,84
и 412,83
похожи, и немедленно удаляете их. Тогда вы останетесь с 412,81
и 412,85
, которые не похожи (расстояние 0.04
), и они будут сохранены.
Сценарий 2
Сначала вы сравниваете 412,84
и 412,85
и удаляете их как похожие, тогда вы останетесь с 412,81
и 412,83
, и они будут также удаляться как похожие. Никакие значения не будут сохранены вообще.
Что это значит?
Существует не только одно решение для этого сценария, и вы получите разные результаты для одного и того же набора данных (с разными упорядоченными значениями). Таким образом, вы должны вычислить всех сценариев и решить, какой из них является правильным, потому что ваш алгоритм не может решить это.
Что теперь делать?
Переосмыслите, в чем ваша проблема. Определите новые правила, чтобы для такого случая было только одно определенное решение. В противном случае вы получите случайные результаты.
Возможно, вы задали не тот вопрос.