草庐IT

Interpolate

全部标签

python - 如何在长 Pandas 系列上应用三次样条插值?

我需要使用三次样条插值替换pandas系列中缺失的数据。我发现我可以使用pandas.Series.interpolate(method='cubic')方法,它看起来像这样:importnumpyasnpimportpandasaspd#createseriessize=50x=np.linspace(-2,5,size)y=pd.Series(np.sin(x))#deletingdatasegmenty[10:30]=np.nan#interpolationy=y.interpolate(method='cubic')尽管此方法对小系列(size=50)工作得很好,但它似乎会导致

Python 在二维网格上插入点值

我有一个常规的二维X、Y和Z数组,我有一个点X0和Y0,我想知道网格上点(X0,Y0)的Z0值。我发现scipy有插值模块,但据我所知,它插值一维/二维数组并返回一维/二维数组,但没有在某一点只返回一个值的方法。例如:#MygriddataX=[[X11,X12,X13,...,X1N],[X21,X22,X23,...,X2N],....[XN1,XN2,XN3,...,XNN]Y=[[Y11,Y12,Y13,...,Y1N],[Y21,Y22,Y23,...,Y2N],....[YN1,YN2,YN3,...,YNN]]Z=[[Z11,Z12,Z13,...,Z1N],[Z21,Z

python - 反转插值以给出与所需插值函数值关联的变量

我正在尝试使用scipy的插值函数来反转插值函数。假设我创建了一个插值函数,importscipy.interpolateasinterpolateinterpolatedfunction=interpolated.interp1d(xvariable,data,kind='cubic')当我指定a时,是否有一些函数可以找到x:interpolatedfunction(x)==a换句话说,“我希望我的插值函数等于a;xvariable的值是多少才能使我的函数等于a?”我很感激我可以用一些数字方案来做到这一点,但是有没有更直接的方法?如果插值函数在xvariable中是多值的怎么办?

python - python中的有界圆插值

我的问题类似于问题here.简单来说,我有一个时间序列角度数据,它在[0,360]之间。我需要计算测量之间的迭代。目前,我正在使用scipy.interpolate.interp1d.为了使我的问题清楚,这里有一个例子,importnumpyasnpfromscipyimportinterpolatedata=np.array([[0,2,4],[1,359,1]])#firstrowtimeindex,secondrowanglemeasurementsf=interpolate.interp1d(data[0,:],data[1,:],kind='linear',bounds_er

python - 如何使用 numpy/scipy/matplotlib 以最小平滑度绘制线(多边形链)

我正在尝试在matplotlib中绘制一条线。我正在寻找正确的插值类型。我想要这样的东西每条线都经过平滑处理。我尝试了几种scipy和matplotlib的组合,比如x_new=np.arange(x,x_length,1)tck=interpolate.splrep(x,y,s=3)y_new=interpolate.splev(x_new,tck,der=0)ax.plot(x_new,y_new,color+lstyle)但我得到的最好结果是这条线代表一个递增的变量..所以它是一个错误的表示。我可以搜索什么?谢谢编辑:我正在考虑自己实现一个方法,但我不知道是否已经完成。伪代码如下

python - 科学 : Interpolating trajectory

我有一条由(x,y)对序列形成的轨迹。我想使用样条在此轨迹上插入点。我该怎么做?使用scipy.interpolate.UnivariateSpline不起作用,因为x和y都不是单调的。我可以引入参数化(例如沿轨迹的长度d),但是我有两个因变量x(d)和y(d).例子:importnumpyasnpimportmatplotlib.pyplotaspltimportmatherror=0.1x0=1y0=1r0=0.5alpha=np.linspace(0,2*math.pi,40,endpoint=False)r=r0+error*np.random.random(len(alpha

python - kind 参数的不同值在 scipy.interpolate.interp1d 中意味着什么?

SciPydocumentation解释了interp1d的kind参数可以取值'linear','nearest',“零”、“线性”、“二次”、“立方”。最后三个是样条阶数,'linear'是不言自明的。'nearest'和'zero'有什么作用? 最佳答案 nearest“捕捉”到最近的数据点。zero是零阶样条。它在任何时候的值(value)都是最后看到的原始值(value)。linear执行线性插值,slinear首先使用订单样条。他们使用不同的代码和canproducesimilarbutsubtlydifferentre

Python/Scipy 插值 (map_coordinates)

我正在尝试使用scipy进行一些插值。我已经查看了很多示例,但我没有找到我想要的东西。假设我有一些数据,其中行和列变量可以在0到1之间变化。每行和列之间的增量变化并不总是相同(见下文)。|0.000.250.801.00------|----------------------------0.00|1.406.501.501.800.60|8.907.301.101.091.00|4.509.201.801.20现在我希望能够获取一组x,y点并确定插值。我知道我可以用map_coordinates做到这一点。我想知道是否有任何简单/聪明的方法可以为数据数组中的适当索引创建x,y值。例如

python - 用 Python 进行样条插值

我编写了以下代码来执行样条插值:importnumpyasnpimportscipyasspx1=[1.,0.88,0.67,0.50,0.35,0.27,0.18,0.11,0.08,0.04,0.04,0.02]y1=[0.,13.99,27.99,41.98,55.98,69.97,83.97,97.97,111.96,125.96,139.95,153.95]x=np.array(x1)y=np.array(y1)new_length=25new_x=np.linspace(x.min(),x.max(),new_length)new_y=sp.interpolate.inte

Python scipy.interpolate插值

我们采集到的数据都是以离散的点的形式存在的,只有在采样点上才有具体的值,在其他区域都没有值数据。此时就需要插值分析,将采样点的数值根据一定的算法,推算出其他未采样区域的数值。在讲scipy.interpolate类方法插值函数之前我们先讲两种常见的插值方法:待定系数法和拉格朗日法插值。待定系数法插值:待定系数法插值在我们拥有n个插值节点时构造一个n次多项式, 然后可以构造非齐次线性方程组, 在高数或线性代数里,我们学过范德蒙德行列式,我们可以根据上述非齐次线性方程组构造出它的系数矩阵,再根据解线性方程组的克拉默(克莱姆) 法则,线性方程组的解确定且唯一,由此我们便可以得到我们的插值函数。由py