Seite 1 von 1

Löschen von bestimmten Werten

Verfasst: Mittwoch 14. Juli 2021, 07:51
von Herzdame2608
Hallo meine Lieben :-)
Folgende Problematik:
Ich habe zwei Listen, und in diesen Listen sind Koordinaten gespeichert. Mein Ziel ist es, die minimale Distanz zwischen den Koordinaten (paarweise) zu berechnen und für Distanzen, die beispielsweise <0,005 sind die Koordinaten aus einer der Liste zu löschen. So dass ich am Ende eine Liste habe mit Koordinaten, wo alle Punkte mindestens 0.005 Abstand zu den Koordinaten in der anderen Liste haben. Wie könnte ich das anstellen?

Re: Löschen von bestimmten Werten

Verfasst: Mittwoch 14. Juli 2021, 07:57
von __deets__
Paarweises Vergleichen sind zwei for-schleifen, und fuer jede Koordinate aus der auesseren Schleife musst du einfach nur pruefen, ob sie weitgenug von allen anderen in der zweiten weg ist:

Code: Alles auswählen

filtered_points = []
for point in first_list:
    if all(distance(point, second_point) > THRESHOLD for second_point in second_list):
        filtered_points.append(point)

Re: Löschen von bestimmten Werten

Verfasst: Mittwoch 14. Juli 2021, 11:50
von DeaD_EyE
Ich habe zwei Listen, und in diesen Listen sind Koordinaten gespeichert.
So in der Art?:

Code: Alles auswählen

coord1 = [(x1, y1), (x2, y2), ...]
coord1 = [(xx1, yy1), (xx2, yy2), ...]
Mit zip über die beiden Listen iterieren, wodurch man dann pro Iteration ein Element von Liste1 und eins von Liste2 bekommt.
Dann erzeugst du einfach neue Listen und die Distanz kannst du mit math.dist berechnen.
Wenn die Distanz die Bedingungen erfüllt, die Koordinaten zur den neuen Listen hinzufügen und ggf. auch die Distanz in eine andere Liste packen.

Code: Alles auswählen

import math

# nützliches
# math.hypot und math.dist

coord1 = [(3, 5), (10, 15), (1, 2)]
coord2 = [(10, 15), (10, 15), (10, 2)]

distances = []
coord1_new = []
coord2_new = []

for p1, p2 in zip(coord1, coord2):
    distance = math.dist(p1, p2)
    if distance > 0.005:
        coord1_new.append(p1)
        coord2_new.append(p2)
        distances.append(distance)

Re: Löschen von bestimmten Werten

Verfasst: Mittwoch 14. Juli 2021, 12:15
von __deets__
@DeadEye: paarweise ist nicht gezippt. Das heißt schon jedes Element der einen mit jedem Element der anderen Liste.