Сохраняйте значения, только если их смещение является минимумом всех их сравнений - PullRequest
0 голосов
/ 19 марта 2020

У меня есть пять массивов: Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems. Массивы «dataknown» - это местоположения x и y, где захоронен известный предмет. KnownItems - это список скрытых предметов. «Dataposs» - это предположения местоположений x и y, где похоронены KnownItems. В настоящее время моя функция вычисляет смещение известных данных и возможных данных, и если это смещение меньше 0,25 (произвольное расстояние), Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems на этой итерации сохраняются в новых массивах и возвращаются.

def GetOffsets(Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems):
    knownY = []
    knownX = []
    possY = []
    possX = []
    items = []
    offset = []
    for j in range(0,len(Xdataposs)):
        for k in range(0,len(Xdataknown)):
            if ((Ydataknown[k] - Ydataposs[j])**2 + (Xdataknown[k] Xdataposs[j])**2)**(1/2) <= 0.25:
                knownY = np.append(knownY, Ydataknown[k])
                knownX = np.append(knownX, Xdataknown[k])
                possY = np.append(conY, Ydataposs[j])
                possX = np.append(conX, Xdataposs[j])
                items = np.append(items, KnownItems[k])
                offset_calc = ((Ydataknown[k] - Ydataposs[j])**2 + (Xdataknown[k] - Xdataposs[j])**2)**(1/2)
                offset = np.append(offset, offset_calc)

    return knownY, knownX, possY, possX, offset, items

После запуска этой функции я сохраняю все данные в словарь:


df = pd.DataFrame({"items": items, "knownX" : known_X,"knownY" : known_Y, "PossibleX" : 
                             possX, "PossibleY" : possY, "Offset": Offset})

Используя этот словарь, я хотел бы найти повторяющиеся местоположения известного X и данные известны и сохраняют только повторное местоположение, имеющее минимальное смещение между повторяющимися данными известной X / известной и данными possX / возможной.

Например, если я знал X = 5 и знал Y = 6, possX = 5.1, possY = 6.1, а также известен X = 5 и известен Y = 6, possX = 5.2, possY = 6.2 Я хотел бы только сохраните известные X = 5 и известные Y = 6, возможно X = 5,1, возможно Y = 6,1 точек, поскольку они имеют меньшее смещение между ними.

Я включил как созданный мной словарь, так и свою функцию на случай, если это проще реализовать в той или иной форме. Я пытался импортировать функцию дубликатов в массивы, которые получил после использования своей функции, но не знал, как применить ее по всем направлениям и удалить ненужные элементы. Вот почему я создал словарь, потому что думал, что его будет проще реализовать в одном, но я просто недостаточно знаком с программированием / словарями, чтобы самому реализовать его из своего поиска в Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...