SciPy 教程

浏览7031
更新时间2025-08-14

什么是插值?

插值是一种在给定点之间生成点的方法。

例如:对于点 1 和 2,我们可以进行插值并找到点 1.33 和 1.66。

插值有许多用途,在机器学习中,我们经常处理数据集中的缺失数据,插值经常用于替代这些值。

这种填充值的方法称为插补。

除了插补之外,插值还经常用于需要平滑数据集中的离散点的情况。

如何在 SciPy 中实现它?

SciPy 为我们提供了一个名为 scipy.interpolate 的模块,其中包含许多用于处理插值的函数:

一维插值

函数 interp1d() 用于对具有 1 个变量的分布进行插值。

它接受 x 和 y 点,并返回一个可调用函数,该函数可以用新的 x 调用并返回相应的 y。

实例

对于给定的 xs 和 ys,从 2.1、2.2... 到 2.9 插值:

from scipy.interpolate import interp1d
import numpy as np

xs = np.arange(10)
ys = 2*xs + 1

interp_func = interp1d(xs, ys)

newarr = interp_func(np.arange(2.1, 3, 0.1))

print(newarr)

结果:

[5.2  5.4  5.6  5.8  6.   6.2  6.4  6.6  6.8]

注意:新的 xs 应该与旧的 xs 处于相同的范围内,这意味着我们不能使用大于 10 或小于 0 的值调用 interp_func()。

样条插值

在一维插值中,点被拟合为单条曲线,而在样条插值中,点被拟合为使用样条定义的分段函数。样条是由多项式定义的。

UnivariateSpline() 函数接受 xs 和 ys,并生成一个可调用函数,该函数可以用新的 xs 调用。

分段函数(Piecewise function):对于不同范围有不同定义的函数。

实例

对于以下非线性点,求 2.1、2.2...2.9 的单变量样条插值:

from scipy.interpolate import UnivariateSpline
import numpy as np

xs = np.arange(10)
ys = xs**2 + np.sin(xs) + 1

interp_func = UnivariateSpline(xs, ys)

newarr = interp_func(np.arange(2.1, 3, 0.1))

print(newarr)

结果:

[5.62826474 6.03987348 6.47131994 6.92265019 7.3939103  7.88514634
 8.39640439 8.92773053 9.47917082]

使用径向基函数的插值

径向基函数是对应于固定参考点定义的函数。

Rbf() 函数也接受 xs 和 ys 作为参数,并生成一个可调用函数,该函数可以用新的 xs 调用。

实例

使用 rbf 对以下 xs 和 ys 进行插值并求 2.1、2.2 ... 2.9 的值:

from scipy.interpolate import Rbf
import numpy as np

xs = np.arange(10)
ys = xs**2 + np.sin(xs) + 1

interp_func = Rbf(xs, ys)

newarr = interp_func(np.arange(2.1, 3, 0.1))

print(newarr)

结果:

[6.25748981  6.62190817  7.00310702  7.40121814  7.8161443   8.24773402
 8.69590519  9.16070828  9.64233874]

相关视频

更多

免费

phpStudy极速入门视频教程
初级phpStudy极速入门视频教程

54.6万次学习

收藏

免费

phpStudy V8 视频教程
初级phpStudy V8 视频教程

38.8万次学习

收藏

免费

小皮面板使用视频教程
初级小皮面板使用视频教程

21.6万次学习

收藏

免费

好课诞生记
初级好课诞生记

7.1万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

65万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.8万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.2万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.4万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.3万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.4万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载