scipy.interpolate.

interp1d#

class scipy.interpolate.interp1d(x, y, kind='linear', axis=-1, copy=True, bounds_error=None, fill_value=nan, assume_sorted=False)[原始碼]#

內插一維函數。

舊版

此類別被視為舊版,將不再接收更新。雖然我們目前沒有移除它的計畫,但我們建議新程式碼改用更現代的替代方案。有關 interp1d 的預期替代方案指南,請參閱 一維插值

xy 是用於近似函數 f 的值陣列:y = f(x)。此類別返回一個函數,其呼叫方法使用插值來尋找新點的值。

參數:
x(npoints, ) 類陣列

實數值的一維陣列。

y(…, npoints, …) 類陣列

實數值的 N 維陣列。y 沿插值軸的長度必須等於 x 的長度。使用 axis 參數選擇正確的軸。與其他內插器不同,預設插值軸是 y 的最後一個軸。

kindstr 或 int,選用

指定插值的種類,可以是字串或整數,用於指定要使用的樣條內插器的階數。字串必須是 ‘linear’、‘nearest’、‘nearest-up’、‘zero’、‘slinear’、‘quadratic’、‘cubic’、‘previous’ 或 ‘next’ 之一。‘zero’、‘slinear’、‘quadratic’ 和 ‘cubic’ 指的是零階、一階、二階或三階的樣條插值;‘previous’ 和 ‘next’ 只是返回點的前一個或下一個值;當插值半整數(例如 0.5、1.5)時,‘nearest-up’ 和 ‘nearest’ 的不同之處在於 ‘nearest-up’ 會向上捨入,而 ‘nearest’ 會向下捨入。預設值為 ‘linear’。

axisint,選用

y 陣列中對應於 x 座標值的軸。與其他內插器不同,預設值為 axis=-1

copybool,選用

如果為 True,則此類別會建立 x 和 y 的內部副本。如果為 False,則盡可能使用對 xy 的參考。預設值為複製。

bounds_errorbool,選用

如果為 True,則每當嘗試對 x 範圍之外的值進行插值(需要外插)時,都會引發 ValueError。如果為 False,超出範圍的值將被賦予 fill_value。預設情況下,除非 fill_value="extrapolate",否則會引發錯誤。

fill_value類陣列 或 (類陣列, 類陣列) 或 “extrapolate”,選用
  • 如果是一個 ndarray(或浮點數),則此值將用於填充資料範圍之外的請求點。如果未提供,則預設值為 NaN。類陣列必須正確廣播到非插值軸的維度。

  • 如果是雙元素元組,則第一個元素用作 x_new < x[0] 的填充值,第二個元素用作 x_new > x[-1] 的填充值。任何不是雙元素元組的東西(例如,列表或 ndarray,無論形狀如何)都被視為單個類陣列參數,意在用於兩個邊界,如 below, above = fill_value, fill_value。使用雙元素元組或 ndarray 需要 bounds_error=False

    在版本 0.17.0 中新增。

  • 如果為 “extrapolate”,則資料範圍之外的點將被外插。

    在版本 0.17.0 中新增。

assume_sortedbool,選用

如果為 False,則 x 的值可以為任意順序,並且會先進行排序。如果為 True,則 x 必須是單調遞增值的陣列。

另請參閱

splrep, splev

基於 FITPACK 的樣條插值/平滑。

UnivariateSpline

FITPACK 常式的物件導向包裝器。

interp2d

二維插值

註解

使用輸入值中存在 NaN 的 interp1d 會導致未定義的行為。

輸入值 xy 必須可轉換為 float 值,例如 intfloat

如果 x 中的值不是唯一的,則產生的行為是未定義的,並且特定於 kind 的選擇,即,更改 kind 將更改重複項的行為。

範例

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy import interpolate
>>> x = np.arange(0, 10)
>>> y = np.exp(-x/3.0)
>>> f = interpolate.interp1d(x, y)
>>> xnew = np.arange(0, 9, 0.1)
>>> ynew = f(xnew)   # use interpolation function returned by `interp1d`
>>> plt.plot(x, y, 'o', xnew, ynew, '-')
>>> plt.show()
../../_images/scipy-interpolate-interp1d-1.png
屬性:
fill_value

填充值。

方法

__call__(x)

評估內插器