什麼是插值,我們如何在 SciPy Python 庫中實現它?
插值是線上或曲線上的兩點之間生成值的一種方法。在機器學習中,插值用於替換資料集中缺失的值。這種填充缺失值的方法稱為插補。插值的另一個重要用途是平滑資料集中的離散點。
SciPy 提供了一個名為 scipy.interpolate 的模組,其中包含許多函式,我們可以藉助這些函式來實現插值。
示例
在下面的示例中,我們將使用 scipy.interpolate() 包實現插值 -
首先,讓我們生成一些資料來在其上實現插值 -
import numpy as np from scipy.interpolate import interp1d import matplotlib.pyplot as plt A = np.linspace(0, 10, num=11, endpoint=True) B = np.cos(-A**2/9.0) print (A, B)
輸出
上面的指令碼將在 0 和 4 之間生成以下點 -
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] [ 1. 0.99383351 0.90284967 0.54030231 -0.20550672 -0.93454613 -0.65364362 0.6683999 0.67640492 -0.91113026 0.11527995]
現在,讓我們按如下方式繪製這些點
plt.plot(A, B, '.') plt.show()

現在我們需要根據固定的資料點建立一個插值函式。讓我們建立它 -
function_interpolate = interp1d(A, B, kind = 'linear')
為了清楚地看到插值的差異,我們將使用與舊輸入相同的函式建立一個更長的新輸入 -
Anew = np.linspace(0, 10, num=30, endpoint=True) plt.plot(A, B, '.', Anew, function_interpolate(Anew), '-') plt.legend(['data', 'linear'], loc = 'best') plt.show()

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP