Toccata in Nowhere.

numpy.interp 一维线性插值方法

2020.10.23

插值方法往往在面对序列坐标不随机(例如 loglog图)时或其他常见情况需要将坐标转换到等间距序列时需要使用。

引入

import numpy as np

基础使用

xSpace = np.arange(lower, upper)
yInterp = np.interp(xSpace, xData, yData)

以上代码首通过给定的 lowerupper 范围生成了一个等间距数组序列 xSpace。 之后在给定的 xDatayData 的原始数据点空间中进行插值。

xSpace 也可以是单个值,用以获得在 xDatayData 空间中 xSpacexData 坐标中的插值结果。

返回值的大小与xSpace相同。

可选参数

left

指定当xSpace值小于 xData[0] (超出左侧)时的插值数值,默认为 yData[0]

指定当xSpace值大于 xData[-1] (超出右侧)时的插值数值,默认为 yData[-1]

period

重复周期,当xSpace超出xData两侧范围后进行重复取值。

例如:

>>> x = [-180, -170, -185, 185, -10, -5, 0, 365]
>>> xp = [190, -190, 350, -350]
>>> fp = [5, 10, 3, 4]
>>> np.interp(x, xp, fp, period=360)
array([7.5 , 5.  , 8.75, 6.25, 3.  , 3.25, 3.5 , 3.75])

Reference

numpy.interp