Angenommen, ich habe zwei Arrays, die die x- und y-Koordinaten einer Kalibrierungskurve angeben."Sinnvoll" Punkte in einer Python-Liste entfernen
X = [1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,30,40,50]
Y = [2,4,6,8,10,12,14,16,18,20,24,28,32,36,40,60,80,100]
Meine Beispiel-Arrays oben enthalten 18 Punkte. Sie werden feststellen, dass die x-Werte nicht linear beabstandet sind. es gibt mehr Punkte bei niedrigeren Werten von x.
Nehmen wir an, ich muss die Anzahl der Punkte in meiner Kalibrierungskurve auf 13 Punkte reduzieren. Natürlich könnte ich nur die ersten fünf oder die letzten fünf Punkte entfernen, aber das würde meinen gesamten Bereich von x-Werten verkürzen. Um den Bereich beizubehalten und den Abstand zwischen x-Werten zu minimieren, würde ich vorzugsweise die Werte x = 2,4,6,8,10 entfernen. Das Entfernen dieser x-Punkte und ihrer jeweiligen y-Werte würde 13 Punkte in der Kurve nach Bedarf lassen.
Wie kann ich diese Punktauswahl und -entfernung automatisch in Python vornehmen? I.e. Gibt es einen Algorithmus, um die besten x Punkte aus einer Liste auszuwählen, wobei "am besten" definiert ist, die Punkte so nahe wie möglich zu halten, während der Gesamtbereich beibehalten wird und die neue Anzahl von Punkten eingehalten wird.
Bitte beachten Sie, dass die verbleibenden Punkte in den ursprünglichen Listen sein müssen, so dass ich die 18 Punkte auf einem Raster mit 13 Punkten nicht interpolieren kann.
Entschuldigung - Ich habe meine ursprüngliche Frage bearbeitet, um (hoffentlich!) Dinge zu klären. Grundsätzlich möchte ich die Anzahl der Werte reduzieren, aber über den gesamten Bereich halten (d. H. Min x und max x). Um dies zu erreichen, möchte ich naheliegende Punkte entfernen – Mark