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


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


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

用法:

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

插值一維函數。

遺產

此類被視為遺留類,將不再接收更新。這也可能意味著它將在未來的 SciPy 版本中被刪除。有關 interp1d 的預期替換的指南,請參閱一維插值。

xy是用於逼近某個函數 f 的值數組:y = f(x).此類返回一個函數,其調用方法使用插值來查找新點的值。

參數

x (npoints, ) 類似數組

一維實數值數組。

y (..., npoints, ...) 數組

N-D 實數值數組。長度為y沿插補軸的長度必須等於x。使用axis參數來選擇正確的軸。與其他插補器不同,默認插補軸是最後一個軸y.

kind str 或 int,可選

將插值類型指定為字符串或整數,指定要使用的樣條插值器的順序。該字符串必須是 ‘linear’, ‘nearest’、‘nearest-up’、‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘previous’ 或 ‘next’ 之一。 ‘zero’, ‘slinear’, ‘quadratic’和‘cubic’指的是零階、一階、二階或三階樣條插值; ‘previous’ 和 ‘next’ 僅返回該點的上一個或下一個值; ‘nearest-up’和‘nearest’在插值half-integers(例如0.5、1.5)時有所不同,‘nearest-up’向上舍入,而‘nearest’向下舍入。默認為‘linear’。

axis 整數,可選

y 數組中的軸對應於 x 坐標值。與其他插值器不同,默認為 axis=-1

copy 布爾型,可選

如果為 True,則該類製作 x 和 y 的內部副本。如果為 False,則使用對 x 和 y 的引用。默認是複製。

bounds_error 布爾型,可選

如果為 True,則在任何時候嘗試對 x 範圍之外的值進行插值時都會引發 ValueError(需要外插)。如果為 False,則分配超出範圍的值 fill_value 。默認情況下,除非 fill_value="extrapolate" 否則會引發錯誤。

fill_value 類似數組或(類似數組,數組)或“extrapolate”,可選
  • 如果是 ndarray (或 float),則該值將用於填充數據範圍之外的請求點。如果未提供,則默認值為 NaN。類似數組必須正確廣播到非插值軸的維度。

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

  • 如果“extrapolate”,則將外推數據範圍之外的點。

assume_sorted 布爾型,可選

如果為 False,則 x 的值可以是任何順序,並且它們首先被排序。如果為 True,x 必須是一個單調遞增值的數組。

注意

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

輸入值 x 和 y 必須可轉換為浮點值,例如 int 或浮點數。

如果 x 中的值不是唯一的,則結果行為是未定義的並且特定於種類的選擇,即改變種類將改變重複的行為。

例子

>>> 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()
scipy-interpolate-interp1d-1.png

屬性

fill_value

填充值。

相關用法


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