W przeszłości, mam tylko owinięty normalne interpolacji to zrobić w dzienniku przestrzeni, tj
def log_interp(zz, xx, yy):
logz = np.log10(zz)
logx = np.log10(xx)
logy = np.log10(yy)
return np.power(10.0, np.interp(logz, logx, logy))
Osobiście wolę ten scipy interpolation functions (jak @mylesgallagher wskazań), na przykład:
import scipy as sp
import scipy.interpolate
def log_interp1d(xx, yy, kind='linear'):
logx = np.log10(xx)
logy = np.log10(yy)
lin_interp = sp.interpolate.interp1d(logx, logy, kind=kind)
log_interp = lambda zz: np.power(10.0, lin_interp(np.log10(zz)))
return log_interp
Następnie można po prostu nazwać tę funkcję jako dowolną wartość.
Przypuszczalnie masz na myśli numpy.interp? – MJeffryes
tak, to był literówka. – DimKoim
Z twojego pytania nie wynika jednoznacznie, co dokładnie rozumiesz przez "interpolację logarytmiczną". Czy możesz podać przykładowe dane wejściowe/wyjściowe? –