當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy interpolate.InterpolatedUnivariateSpline用法及代碼示例


本文簡要介紹 python 語言中 scipy.interpolate.InterpolatedUnivariateSpline 的用法。

用法:

class  scipy.interpolate.InterpolatedUnivariateSpline(x, y, w=None, bbox=[None, None], k=3, ext=0, check_finite=False)#

給定數據點集的一維插值樣條。

擬合度數的樣條曲線 y = spl(x)k對提供的x,y數據。樣條函數通過所有提供的點。相當於scipy.interpolate.UnivariateSplines= 0。

參數

x (N,) 數組

數據點的輸入維度 - 必須嚴格增加

y (N,) 數組

數據點的輸入維度

w (N,) 數組, 可選

樣條擬合的權重。必須是正的。如果無(默認),則權重均為 1。

bbox (2,) 類數組,可選

2-sequence 指定近似區間的邊界。如果無(默認),bbox=[x[0], x[-1]]

k 整數,可選

平滑樣條的程度。必須是 1 <= k <= 5 。默認值為 k = 3 ,三次樣條。

ext int 或 str,可選

控製不在節點序列定義的區間內的元素的外推模式。

  • 如果 ext=0 或 ‘extrapolate’,則返回外推值。

  • 如果 ext=1 或 ‘zeros’,返回 0

  • 如果 ext=2 或‘raise’,則引發ValueError

  • 如果‘const’的ext=3,返回邊界值。

默認值為 0。

check_finite 布爾型,可選

是否檢查輸入數組是否僅包含有限數。禁用可能會提高性能,但如果輸入確實包含無窮大或 NaN,則可能會導致問題(崩潰、非終止或無意義的結果)。默認為假。

注意

數據點的數量必須大於樣條度 k。

例子

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.interpolate import InterpolatedUnivariateSpline
>>> rng = np.random.default_rng()
>>> x = np.linspace(-3, 3, 50)
>>> y = np.exp(-x**2) + 0.1 * rng.standard_normal(50)
>>> spl = InterpolatedUnivariateSpline(x, y)
>>> plt.plot(x, y, 'ro', ms=5)
>>> xs = np.linspace(-3, 3, 1000)
>>> plt.plot(xs, spl(xs), 'g', lw=3, alpha=0.7)
>>> plt.show()
scipy-interpolate-InterpolatedUnivariateSpline-1_00_00.png

請注意,spl(x)插值y

>>> spl.get_residual()
0.0

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.interpolate.InterpolatedUnivariateSpline。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。