【问题标题】:Choosing between numpy.interp vs scipy.interpolate.interp1d (with kind='linear')在 numpy.interp 与 scipy.interpolate.interp1d 之间进行选择(使用 kind='linear')
【发布时间】:2015-08-29 20:09:58
【问题描述】:

我正在尝试在 numpy.interpscipy.interpolate.interp1d 之间进行选择(当然是 kind='linear')。我意识到它们有不同的接口,但这对我来说并不重要(我可以围绕任一接口编写代码)。我想知道是否还有其他我应该注意的差异。谢谢。

【问题讨论】:

  • 结果应该相同。您可以比较两种方法中的time tests
  • 保证x和y值的所有输入数组的结果都是相同的?
  • 我不会保证任何事情,并且可能存在机器精度差异,但否则我认为它们不会产生不同的结果。

标签: python numpy scipy


【解决方案1】:

Numpy.interp 不处理复数值数据或 ndim>1,而 scipy.interp1d 两者都处理。 OTOH,numpy 的插值器是 much faster(在最近的 numpy 版本中可能更快)。

【讨论】:

  • 是的,这就是我正在寻找的信息。谢谢!
  • @ev-br,直接调用 numpy 还是比调用 scipy 快得多吗?我在 scipy 1.5.2 的 source code 中看到,如果满足某些条件,scipy 会自动将插值委托给 numpy。
【解决方案2】:

当 numpy 返回一个包含离散数据点的数组时,'interp1d' 返回一个函数。您可以根据需要在以后的代码中使用生成的函数。此外,您可以选择线性插值以外的其他方法n

【讨论】:

  • 正如我的问题陈述中所指出的,我知道不同的接口,并且我知道除了 kind='linear' 之外的方法,但这些不是我要问的事情。跨度>
猜你喜欢
  • 2022-08-17
  • 1970-01-01
  • 2016-02-28
  • 2013-02-23
  • 2011-04-27
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 2018-08-14
相关资源
最近更新 更多