2015-08-29 8 views
8

Sto provando a scegliere tra numpy.interp vs scipy.interpolate.interp1d (con kind='linear' ovviamente). Mi rendo conto che hanno interfacce diverse, ma non mi importa molto (posso scrivere su entrambe le interfacce). Mi chiedo se ci siano altre differenze di cui dovrei essere a conoscenza. Grazie.Scegliere tra numpy.interp vs scipy.interpolate.interp1d (con kind = 'linear')

+0

I risultati devono essere identici. È possibile confrontare [time test] (https://docs.python.org/2/library/timeit.html) dei due metodi. – farenorth

+0

È garantito che i risultati saranno identici per tutti gli array di input dei valori x e y? – sotrue

+0

Non ho intenzione di garantire nulla e potrebbero esserci differenze di precisione della macchina, ma altrimenti non vedo alcun motivo per cui produrrebbero risultati diversi. – farenorth

risposta

4

Mentre numpy restituisce un array con punti dati discreti, 'interp1d' restituisce una funzione. Puoi utilizzare la funzione generata più tardi nel tuo codice tutte le volte che vuoi. Inoltre, è possibile scegliere altri metodi rispetto all'interposizione lineare

+0

Come noto nella mia domanda, conosco le diverse interfacce e conosco metodi diversi da kind = 'linear', ma queste non sono le cose che sto chiedendo. – sotrue

12

Numpy.interp non gestisce dati con valori complessi o ndim> 1, mentre scipy.interp1d esegue entrambi. OTOH, l'interpolatore di NumPy è much faster (ed è probabilmente più veloce ancora nella versione numpy più recente).

+0

Sì, questo è il tipo di informazioni che stavo cercando. Grazie! – sotrue

Problemi correlati