Bare spare verdier hvis deres offset er den minste av alle sine sammenligninger

stemmer
0

Jeg har fem matriser: Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems. De dataknown arrays er X- og Y-stedene fra hvor et kjent element er begravet. KnownItems er en liste over nedgravde gjenstander. Den dataposs er gjetninger x- og y steder hvor KnownItems er begravd. For tiden min funksjon beregner forskyvningen av de kjente data og de mulige data, og hvis det forskyvningen er mindre enn 0,25 (en vilkårlig avstand) den Xdataknown, Ydataknown, Xdataposs, Ydataposs, KnownItems ved at iterasjon blir lagret i nye matriser og returnert.

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

Etter at jeg kjører denne funksjonen, lagrer jeg alle data i en ordbok:


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

Ved hjelp av denne ordboken, vil jeg gjerne for å søke etter gjentatte steder i knownX og knownY data og bare spare gjentatte sted som har den minste forskyvning mellom de gjentatte knownX / knownY data og possX / possY data.

For eksempel, hvis jeg har knownX = 5 og knownY = 6, possX = 5,1, possY = 6,1, så vel som knownX = 5 og knownY = 6, possX = 5,2, possY = 6,2 jeg vil gjerne bare spare den knownX = 5 og knownY = 6, possX = 5,1, possY = 6,1 poeng som de har den minste forskyvning mellom dem.

Jeg har tatt både i ordlisten jeg opprettet samt min funksjon i tilfelle det er lettere å implementere dette i en eller annen form. Jeg prøvde å importere duplikater funksjon til arrays jeg fikk etter å ha brukt min funksjon, men var usikker på hvordan du skal bruke det over hele linja og fjerne elementer som jeg ikke ønsker. Det er derfor jeg laget en ordbok fordi jeg trodde det ville være lettere å gjennomføre i en, men jeg er bare ikke godt nok kjent med programmering / ordbøker for å implementere det selv ut av min google søk. Igjen, jeg er super ny til å jobbe med ting som dette så kan du være snill. Takk skal du ha!

Publisert på 19/03/2020 klokken 21:52
kilden bruker
På andre språk...                            

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