Je travaille sur un logiciel qui doit mettre en œuvre la souplesse d'un ensemble de données. Voici un exemple de l'entrée que je recevrais, a fusionné avec le tracé de la légèreté de chaque bande de pixel vertical: Déterminer "wiggliness" de l'ensemble de données - Python
Il est facile de voir que la marge de gauche est vraiment wiggly (c.-à-a une tonne de minima/maxima), et je veux générer un ensemble de points critiques de l'image. J'ai appliqué une fonction de lissage gaussienne aux données ~ 10 fois, mais il semble que ce soit assez flou pour commencer.
Des idées?
Voici mon code d'origine, mais il ne produit pas très agréable (pour le 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))
Pourriez-vous poster un lien vers une définition précise de wiggliness? –
La statistique que vous cherchez à caractériser une caractéristique de fréquence ou une caractéristique d'amplitude? – SingleNegationElimination
Si vous demandez un moyen de caractériser Wiggliness au lieu d'un moyen d'implémenter cette caractérisation par programme, vous pouvez avoir plus de chance sur http://stats.stackexchange.com/. – katrielalex