Ich arbeite an einem Stück Software, die die Wiggliness einer Reihe von Daten implementieren muss. Hier ist ein Beispiel des Eingangs würde ich erhalten, mit der Leichtigkeit Plot jedes vertikale Pixelstreifen verschmolzen: Bestimmen Sie "Wiggliness" von Datensätzen - Python
Es ist leicht zu sehen, dass der linke Rand ist wirklich Verwackeln (dh eine Tonne Minima/Maxima), und ich möchte eine Reihe von kritischen Punkten des Bildes erzeugen. Ich habe eine Gaußsche Glättungsfunktion ~ 10 Mal auf die Daten angewendet, aber es scheint ziemlich wackelig zu sein.
Irgendwelche Ideen?
Hier ist meine Original-Code, aber es erzeugt keine sehr schöne Ergebnisse (für die wiggliness):
def local_maximum(list, center, delta):
maximum = [0, 0]
for i in range(delta):
if list[center + i] > maximum[1]: maximum = [center + i, list[center + i]]
if list[center - i] > maximum[1]: maximum = [center - i, list[center - i]]
return maximum
def count_maxima(list, start, end, delta, threshold = 10):
count = 0
for i in range(start + delta, end - delta):
if abs(list[i] - local_maximum(list, i, delta)[1]) < threshold: count += 1
return count
def wiggliness(list, start, end, delta, threshold = 10):
return float(abs(start - end) * delta)/float(count_maxima(list, start, end, delta, threshold))
Könnten Sie einen Link zu einer genauen Definition von Wiggliness veröffentlichen? –
Ist die Statistik, die Sie suchen, um ein Frequenz- oder Amplitudenmerkmal zu charakterisieren? – SingleNegationElimination
Wenn Sie nach einer Möglichkeit suchen, die Wigglinigkeit zu charakterisieren, anstatt diese programmatisch zu implementieren, haben Sie vielleicht mehr Glück auf http://stats.stackexchange.com/. – katrielalex