Il mio modo di capire come funziona realmente la funzione Numpy.correlate()
, ottengo alla sua implementazione in puro Python, ma quello che ho visto è stato molto deludente:In che modo multiarray.correlate2 (a, v, mode) viene effettivamente implementato?
def correlate(a, v, mode='valid', old_behavior=False):
mode = _mode_from_name(mode)
if old_behavior:
warnings.warn("""Warning.""", DeprecationWarning)
return multiarray.correlate(a, v, mode)
else:
return multiarray.correlate2(a, v, mode)
così ho iniziato a cercare implementazione della funzione multiarray.correlate2(a, v, mode)
, ma sfortunatamente non riesco a trovarlo. Devo solo dire che lo sto cercando, perché cerco di implementare la funzione di autocorrelazione da solo, e mi manca la funzionalità simile al parametro mode='full'
in Numpy.correlate()
che rende la funzione per restituire il risultato come un array 1D. Grazie per l'aiuto in anticipo.
Grazie. Potresti, inoltre, spiegare come funziona questa funzione 'correl2()' in modo da dare a 'mode = 'full'' un array? – bluevoxel
@bluevoxel, capisci come funziona 'mode = valid'? Le altre due modalità specificano solo quanto è lungo l'array di output. È possibile calcolare la "correlazione incrociata" per le dimensioni di un array arbitrario. Ogni volta che la formula tenta di accedere a un indice non valido (ad es. 'V [-1]'), si dà per scontato che in questa posizione hai trovato un '0'. Si ottiene lo stesso risultato riempiendo 'v' di zeri da destra e da sinistra, fino a quando len (v ') == len (a) + len (v) + 1'. – cel