python——numpy——np.interp()

numpy的interp函数用于一维线性插值,通过给定的离散点(xp, fp)构建分段线性函数,并在任意x值处求解。当x超出范围时,可通过left和right参数指定边界处理方式。示例展示了如何使用该函数进行插值计算及绘制插值曲线,适用于数据拟合和插值场景。
部署运行你感兴趣的模型镜像

函数:y = np.interp(x, xp, fp, left, right, period)

单调增加样本点的一维线性插值

将一维分段线性插值返回给具有给定离散数据点 (xp, fp) 的函数,在 x 处求值。

x: 所求位置的x坐标

xp:离散点的x坐标

fp:离散点的y坐标

left:当索引超出[xp,fp]时的左侧值(x<xp时在x位置的取值)

right:当索引超出[xp,fp]时的右侧值(y>fp时在x位置的取值)

period:

y:x位置对应的取值

举例:官网给的例子

    >>> xp = [1, 2, 3]
    >>> fp = [3, 2, 0]
    >>> np.interp(2.5, xp, fp)
    1.0
    >>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp)
    array([3.  , 3.  , 2.5 , 0.56, 0.  ])
    >>> UNDEF = -99.0
    >>> np.interp(3.14, xp, fp, right=UNDEF)
    -99.0

    Plot an interpolant to the sine function:

    >>> x = np.linspace(0, 2*np.pi, 10)
    >>> y = np.sin(x)
    >>> xvals = np.linspace(0, 2*np.pi, 50)
    >>> yinterp = np.interp(xvals, x, y)
    >>> import matplotlib.pyplot as plt
    >>> plt.plot(x, y, 'o')
    [<matplotlib.lines.Line2D object at 0x...>]
    >>> plt.plot(xvals, yinterp, '-x')
    [<matplotlib.lines.Line2D object at 0x...>]
    >>> plt.show()

    Interpolation with periodic x-coordinates:

    >>> 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])

总结:其实就是给出[xp,fp]坐标点,利用相邻两点确定一条直线,可以得到一段段相连的折线,根据x的值找到所在位置的线段,进而得到x位置所对应的值。若x超出范围,left和right有则参考,无则选取端点值。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值