ich möchte in einem array die Position vom ersten, nähersten Wert finden.
Zum Beipiel, ich habe ich einen Sinus verlauf:
Code: Alles auswählen
import numpy as np
werte = [1, 2, 3, 4.1, 5, 6, 5, 4.01, 3, 2, 1, -1, -2, -3, -4.1, -5, -6, -5,-4.01, -3, -2, -1]
suchwert = 4
index=abs(np.array(werte)-suchwert).argmin()
print("Das Listenelement mit der geringsten Abweichung ist:",werte[index],"Listenindex:",index)
"Das Listenelement mit der geringsten Abweichung ist: 4.01 Listenindex: 7"
Es ist 100% richtig.
Aber,
da ich mit den Messwerten arbeite, weiß ich, dass der Wertt "4.1" in meinem Fall richtiger ist, obwohl "4.01" zu 4 als nächstes ist.
Meine erste überlegung ist mit den Daten Typ spielen. Z.B. alle werte im vektor "werte" in "int" konvertieren.
Konnte diese Frage inteliegenter gelöst werden?
Noch eine Frage:
wie würd der Code aussehen, wenn der Suchwert ein Batrag (abs) wäre? weil "4.1" positiv oder nägativ sein kann.
Vielen Dank für die Antwort im Voraus!
mfg Yurii