使用numpy.interp
,我能够计算给定离散数据点上的函数的一维分段线性插值。
是否有类似的函数可以返回对数插值?
使用numpy.interp
,我能够计算给定离散数据点上的函数的一维分段线性插值。
是否有类似的函数可以返回对数插值?
过去,我只是将正常的插值包装起来,以对数空间进行插值,即
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))
就我个人而言,我更喜欢scipy插值函数(正如@mylesgallagher所提到的),例如:
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
那么你可以将其作为函数对任意值进行调用。