Python 中的樣條插值

Rana Hasnain Khan 2023年1月30日 2022年5月18日
  1. Python 中的 SciPy 插值
  2. Python 中的樣條插值
Python 中的樣條插值

我們將在 Python 中介紹帶有一些插值技術的 SciPy 模組。我們還將通過示例介紹 Python 中的樣條插值。

Python 中的 SciPy 插值

當我們使用資料來獲得預測時,我們需要在 Python 中進行插值。我們用它來構建給定資料點之間的資料點。

Python 提供了一個內建模組 scipy.interpolate,可用於實現插值。它由類、樣條函式、單變數和多變數插值類組成。

插值的方式有很多種,如下圖。

  1. 樣條插值
  2. RBF 插值
  3. 一維插值
  4. 單變數樣條插值

在本教程中,我們將詳細學習樣條插值。

Python 中的樣條插值

為了通過資料點繪製平滑曲線,我們使用樣條插值。我們計算曲線的樣條表示,然後,我們可以計算所需點的樣條。

我們可以使用函式 splrep 在二維平面中找到樣條表示。如果我們想計算 B 樣條或其導數,則使用 scipy.interpolate.splev,如下所示。

# python
# for B-spline representation of a 1-D curve
scipy.interpolate.splrep(x, y, s=1)

# for B-spline or derivatives
spicy.interpolate.splev(x, tck, der)

現在,讓我們通過一個例子來嘗試找到樣條插值。首先,我們將使用以下命令安裝 NumPyMatplotlibSciPy

# python
pip install numpy
pip install matplotlib
pip install scipy

這些命令將安裝所需的模組,一旦我們安裝了它們,我們會將它們匯入我們的 main.py 檔案中,如下所示。

# python
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate

我們將定義圖表上的點,如下所示。

# python
y = [1,3,5,7,2,4,9,6]
n = len(y)
x = range(0, n)

我們將使用上述方法建立圖形並進行曲線樣條插值。

# python
tck = interpolate.splrep(x, y, s=0)
xfit = np.arange(0, n-1, np.pi/50)
yfit = interpolate.splev(xfit, tck, der=0)

plt.plot(x, y, 'ro')
plt.plot(xfit, yfit,'b')
plt.plot(xfit, yfit)
plt.title("Spline interpolation In Python")
plt.show()

輸出:

python 中的樣條插值

從上面的示例中可以看出,我們可以使用上述方法輕鬆建立樣條插值。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

相關文章 - Python Interpolation