Posso scrivere qualcosa da solo trovando zero-incroci della prima derivata o qualcosa del genere, ma sembra una funzione abbastanza comune da essere inclusa nelle librerie standard. Qualcuno ne conosce uno?
La mia particolare applicazione è un array 2D, ma di solito sarebbe usato per trovare picchi negli FFT, ecc.
In particolare, in questi tipi di problemi, ci sono più picchi forti, e quindi molti "picchi" più piccoli che sono solo causati dal rumore che dovrebbe essere ignorato. Questi sono solo esempi; non i miei dati effettivi:
Picchi monodimensionali:
Picchi bidimensionali:
L'algoritmo di ricerca del picco troverebbe la posizione di questi picchi (non solo i loro valori) e idealmente troverebbe il vero picco tra campioni, non solo l'indice con il valore massimo, probabilmente usando l' interpolazione quadratica o qualcosa del genere.
In genere ti preoccupi solo di alcuni picchi forti, quindi potrebbero essere scelti perché sono al di sopra di una certa soglia o perché sono i primi n picchi di un elenco ordinato, classificati in base all'ampiezza.
Come ho detto, so come scrivere qualcosa del genere da solo. Sto solo chiedendo se esiste una funzione o un pacchetto preesistenti che funzionano bene.
Aggiornare:
Ho tradotto uno script MATLAB e funziona decentemente per il caso 1-D, ma potrebbe essere migliore.
Aggiornamento aggiornato:
sixtenbe ha creato una versione migliore per il caso 1-D.
find_peaks
, quindi ho aggiunto questa risposta che potrebbe essere utile per riferimento futuro. (Sono sicuro che lo hai già trovato dal 2009, ma è per altre persone + me stesso quando mi farò di nuovo la domanda tra qualche anno!)