Apenas salvar valores se a sua compensação é o mínimo de todas as suas comparações

votos
0

Eu tenho cinco matrizes: Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems. As matrizes dataknown são o x e y locais de onde o item conhecido está enterrado. KnownItems é uma lista de itens enterrados. O dataposs são as suposições os locais X e Y, em que os KnownItems estão enterrados. Actualmente, a minha função calcula o deslocamento dos dados conhecidos e os dados possíveis e se esse deslocamento é inferior a 0,25 (uma distância arbitrária) da Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems em que são guardadas para a iteração novas matrizes e devolvido.

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

Depois eu executar essa função, eu salvar todos os dados em um dicionário:


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

Usando este dicionário, eu gostaria de procurar locais de repetição dos dados knownX e knownY e só guardar a localização repetiu que tem o deslocamento entre as knownX / knownY dados repetidos e os dados possX / Possy mínimo.

Por exemplo, se eu tiver knownX = 5 e knownY = 6, possX = 5,1, Possy = 6,1, bem como knownX = 5 e knownY = 6, possX = 5,2, Possy = 6,2 Gostaria apenas salvar o knownX = 5 e knownY = 6, possX = 5,1, Possy = 6,1 pontos, pois têm a menor deslocamento entre eles.

Eu incluí tanto o dicionário que eu criei, bem como a minha função no caso, é mais fácil de implementar isso em uma forma ou outra. Eu tentei importar as duplicatas funcionar para as matrizes que recebi depois de usar a minha função, mas não tinha certeza como aplicá-la em todo os itens de tabuleiro e retire eu não queria. É por isso que eu criei um dicionário porque eu pensei que seria mais fácil de implementar em um, mas eu não sou apenas o suficiente familiarizados com programação / dicionários para implementá-lo-me fora da minha pesquisa no Google. Mais uma vez, estou super novo para trabalhar com coisas como esta por isso, ser gentil. Obrigado!

Publicado 19/03/2020 em 21:52
fonte usuário
Em outras línguas...                            

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