首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中的对数插值

python中的对数插值
EN

Stack Overflow用户
提问于 2015-03-30 20:29:50
回答 2查看 13.1K关注 0票数 16

使用numpy.interp,我能够计算在离散数据点具有给定值的函数的一维分段线性插值。

它是一个类似的函数来返回对数插值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 09:49:32

在过去,我只是在对数空间中包装了法线插值。

代码语言:javascript
运行
复制
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 interpolation functions (正如@mylesgallagher提到的),例如:

代码语言:javascript
运行
复制
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

然后,您可以将其作为任意值的函数来调用。

票数 24
EN

Stack Overflow用户

发布于 2015-03-30 20:57:07

如果我没理解错的话,你有一些离散的数据,你想要得到一组平滑的值,这些值会出现在你拥有的值之间。我假设你不想要一个近似于数据的对数函数的方程。

不幸的是,numpy没有线性分段插值之外的任何东西,但是如果你研究一下使用SciPy,它确实有一个更强大的插值函数。有关更多详细信息,请参阅SciPy's interpolate文档。

它包括更复杂的插值,比如“立方”插值,它会给你非常平滑的近似,但它不是一个对数,也不会给你一个方程。

如果你想要一个方程,你要找的是回归技术,而不是插值,但我不认为你是。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29346292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档