Только сохранить значения, если их смещение является минимальным из всех их сравнения

голоса
0

У меня есть пять массивов: Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems. В «dataknown» массивы х и у местоположения, где похоронен известный элемент. KnownItems список захороненных предметов. «Dataposs» является угадав й и у тех мест, где 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})

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

Например, если у меня knownX = 5 и knownY = 6, possX = 5,1, Possy = 6.1, а также knownX = 5 и knownY = 6, possX = 5,2, Possy = 6,2 Я хотел бы только сэкономить на knownX = 5 и knownY = 6, possX = 5,1, Possy = 6.1 пунктов, поскольку они имеют меньший сдвиг между ними.

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

Задан 19/03/2020 в 23:52
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more