Ich habe eine Messkurve, welche über einzelne, scharfe Peaks (Ausreißer) verfügt. Nun suche ich einen Weg um nur diese Ausreißer aus meinen Daten zu löschen. Mein Numpy-Array hat ca. 10^6 Zeilen und 3 Spalten. Nun habe ich mir überlegt, mit einer Schleife die einzelnen Werte durchzugehen und die Abweichung des Wertes in der Zeile n+1 zu dem in Zeile n zu berechnen. Übersteigt die Abweichung einen gewissen Wert, wird Zeile n+1 gelöscht.
In einem kleinen Vorabtest hat das auch funktioniert, nur mit den realen Daten nicht. Ich muss die Grenze so groß wählen, dass alle Werte erhalten bleiben. Aus irgendeinem Grund hängt sich mein Python auch auf, wenn mehrere Zeilen nacheinander gelöscht werden. Hier mal mein Code und die Bitte um Hilfe

Code: Alles auswählen
i=0
while i < len(A)-1:
if abs(1-(A[i,1]/A[(i+1),1])) > 0.2:
A = np.delete(A,(i+1),axis=0)
continue
i += 1
Danke für eure Hilfe!
Ps: Entschuldigt bitte, dass ich es nicht genauer darlegen kann. Die Messdaten kann ich nicht veröffentlichen und ein Beispiel, welches das Problem reproduziert, konnte ich nicht basteln. Wenn also etwas unklar ist, bitte fragen
