草庐IT

Interpolate

全部标签

Python scipy.interpolate插值

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

python - 如何使 scipy.interpolate 给出超出输入范围的推断结果?

我正在尝试移植一个使用手动插值器(由数学家学院开发)的程序,以使用scipy提供的插值器。我想使用或包装scipy插值器,使其具有尽可能接近旧插值器的行为。两个函数之间的一个关键区别在于,在我们的原始插值器中-如果输入值高于或低于输入范围,我们的原始插值器将推断结果。如果您使用scipy插值器尝试此操作,则会引发ValueError。以这个程序为例:importnumpyasnpfromscipyimportinterpolatex=np.arange(0,10)y=np.exp(-x/3.0)f=interpolate.interp1d(x,y)printf(9)printf(11)

python - 如何使 scipy.interpolate 给出超出输入范围的推断结果?

我正在尝试移植一个使用手动插值器(由数学家学院开发)的程序,以使用scipy提供的插值器。我想使用或包装scipy插值器,使其具有尽可能接近旧插值器的行为。两个函数之间的一个关键区别在于,在我们的原始插值器中-如果输入值高于或低于输入范围,我们的原始插值器将推断结果。如果您使用scipy插值器尝试此操作,则会引发ValueError。以这个程序为例:importnumpyasnpfromscipyimportinterpolatex=np.arange(0,10)y=np.exp(-x/3.0)f=interpolate.interp1d(x,y)printf(9)printf(11)

python - 类似于 scipy.interpolate.griddata?

我想对给定的3D点云进行插值:我查看了scipy.interpolate.griddata结果正是我所需要的,但据我所知,我需要输入“griddata”,这意味着x=[[0,0,0],[1,1,1],[2,2,2]].但我给定的3D点云没有这种网格外观-x、y值的行为不像网格-不管怎样,每个x、y值只有一个z值。*那么对于我的非网格点云,是否有替代scipy.interpolate.griddata的方法?*编辑:“没有网格外观”意味着我的输入看起来像这样:x=[0,4,17]y=[-7,25,116]z=[50,112,47] 最佳答案

python - 在没有 fillna 或 Interpolate 的情况下从数据框中删除 NaN 值

我有一个数据集:3672354198959921941999-01-118511999-03-23NaN4NaN1999-04-30NaNNaN11999-06-02NaN9NaN1999-08-082NaNNaN1999-08-12NaN3NaN1999-08-17NaNNaN101999-10-22NaN3NaN1999-12-04NaNNaN42000-03-042NaNNaN2000-09-299NaNNaN2000-09-309NaNNaN当我绘制它时,使用plt.plot(df,'-o')我得到这个:但我想要的是将每一列的数据点连接成一条线,如下所示:我知道matplotl

python - 使用 scipy.interpolate.splrep 函数

我正在尝试将三次样条拟合到一组给定的点。我的积分没有排序。我无法对这些点进行排序或重新排序,因为我需要该信息。但由于函数scipy.interpolate.splrep仅适用于非重复和单调递增的点,我定义了一个将x坐标映射到单调递增空间的函数。我的旧观点是:xpoints=[4913.0,4912.0,4914.0,4913.0,4913.0,4913.0,4914.0,4915.0,4918.0,4921.0,4925.0,4932.0,4938.0,4945.0,4950.0,4954.0,4955.0,4957.0,4956.0,4953.0,4949.0,4943.0,4933

python - 在 numpy.interp 与 scipy.interpolate.interp1d 之间进行选择(种类为 ='linear' )

我正在尝试在numpy.interp和scipy.interpolate.interp1d之间做出选择(当然是kind='linear').我意识到它们有不同的接口(interface),但这对我来说并不重要(我可以围绕任一接口(interface)进行编码)。我想知道是否还有其他我应该注意的差异。谢谢。 最佳答案 Numpy.interp不处理复数值数据或ndim>1,而scipy.interp1d两者都做。OTOH,numpy的插值器是muchfaster(并且在最近的numpy版本中可能更快)。

python - DataFrame.interpolate() 推断尾随缺失数据

考虑以下示例,我们在其中设置示例数据集、创建MultiIndex、拆分数据帧,然后在逐行填充的位置执行线性插值:importpandasaspd#version0.14.1importnumpyasnp#version1.8.1df=pd.DataFrame({'location':['a','b']*5,'trees':['oaks','maples']*5,'year':range(2000,2005)*2,'value':[np.NaN,1,np.NaN,3,2,np.NaN,5,np.NaN,np.NaN,np.NaN]})df.set_index(['trees','loca

Scipy径向基函数(scipy.interpolate.rbf)中的Python MemoryError

我正在尝试使用Scipy径向基函数(Rbf)插入一个表示2D表面的不太大(约10.000个样本)的点云。我得到了一些不错的结果,但是对于我最后的数据集,我一直得到MemoryError,即使错误在执行过程中几乎立即出现(RAM显然没有被吃掉)。我决定从Scipy破解rbf.py文件的副本,首先在其中填充一些非常有用的打印语句。通过逐行分解_euclidean_norm方法,如下所示:def_euclidean_norm(self,x1,x2):d=x1-x2s=d**2su=s.sum(axis=0)sq=sqrt(su)returnsq我在第一行得到错误:File"C:\MyRBF.

javascript - $parse、$interpolate 和 $compile 服务有什么区别?

$parse、$interpolate和$compile服务有什么区别?对我来说,他们都做同样的事情:获取模板并将其编译为模板函数。 最佳答案 这些都是帮助AngularJSView渲染的服务示例(尽管$parse和$interpolate可以在这个域之外使用)。为了说明每个服务的作用,让我们以这段HTML为例:varimgHtml=''范围内的值:$scope.name='image';$scope.extension='jpg';鉴于此标记,这里是每个服务带来的内容:$compile-它可以获取整个标记并将其转换为链接函数,当在