Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python 插值

作者:萫蕉姺森う   发布日期:2026-06-22   浏览:50

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d

# 原始数据点
x = np.linspace(0, 10, num=11, endpoint=True)
y = np.cos(-x**2/9.0)

# 创建插值函数
f = interp1d(x, y, kind='linear')  # 线性插值
f2 = interp1d(x, y, kind='cubic')  # 三次样条插值

# 新的插值点
x_new = np.linspace(0, 10, num=41, endpoint=True)

# 计算插值结果
y_linear = f(x_new)
y_cubic = f2(x_new)

# 绘图
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'o', label='原始数据点')
plt.plot(x_new, y_linear, '-', label='线性插值')
plt.plot(x_new, y_cubic, '--', label='三次样条插值')
plt.legend()
plt.show()

解释说明:

  1. 导入库:我们使用了 numpymatplotlibscipy.interpolate 库。numpy 用于生成数据点,matplotlib 用于绘图,scipy.interpolate 提供了插值功能。

  2. 原始数据点:我们定义了两个数组 xy,分别表示 x 轴和 y 轴上的数据点。这里使用了 np.cos 函数生成一些示例数据。

  3. 创建插值函数:使用 interp1d 创建了两种插值方式的函数:

    • f 是线性插值(kind='linear'),它会在相邻的数据点之间进行线性插值。
    • f2 是三次样条插值(kind='cubic'),它会生成平滑的曲线。
  4. 新的插值点:我们生成了更多的 x 轴数据点 x_new,用于在这些新点上计算插值结果。

  5. 计算插值结果:通过调用 f(x_new)f2(x_new),我们得到了线性插值和三次样条插值的结果。

  6. 绘图:最后,我们使用 matplotlib 将原始数据点和插值结果绘制在同一张图上,并添加了图例以便区分不同的插值方法。

上一篇:python seek()方法

下一篇:python中split的用法和作用

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

python集合中的元素可以是列表

staticmethod在python中有

python 保存json文件

python的assert基本用法

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站