Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中使用SciPy规则网格的快速二维插值到散乱/不规则求值 我有一个规则的训练值网格(向量x和y,分别具有网格xMyz和yMyz和已知的ZMAX值),但要有一个分散的/不规则的/不规则的值组,要被插值(向量席和Yi,我们对Zi〔0〕=f(席席〔0〕,易〕0)感兴趣…Zi[n-1 ]=f(Xi〔N-1〕,Yi〔N-1〕)。作为优化问题的一部分,此插值将被调用数百万次,因此性能非常重要,不能简单地使用生成网格并获取跟踪的方法_Python_Numpy_Scipy_Interpolation_Mesh - Fatal编程技术网

Python中使用SciPy规则网格的快速二维插值到散乱/不规则求值 我有一个规则的训练值网格(向量x和y,分别具有网格xMyz和yMyz和已知的ZMAX值),但要有一个分散的/不规则的/不规则的值组,要被插值(向量席和Yi,我们对Zi〔0〕=f(席席〔0〕,易〕0)感兴趣…Zi[n-1 ]=f(Xi〔N-1〕,Yi〔N-1〕)。作为优化问题的一部分,此插值将被调用数百万次,因此性能非常重要,不能简单地使用生成网格并获取跟踪的方法

Python中使用SciPy规则网格的快速二维插值到散乱/不规则求值 我有一个规则的训练值网格(向量x和y,分别具有网格xMyz和yMyz和已知的ZMAX值),但要有一个分散的/不规则的/不规则的值组,要被插值(向量席和Yi,我们对Zi〔0〕=f(席席〔0〕,易〕0)感兴趣…Zi[n-1 ]=f(Xi〔N-1〕,Yi〔N-1〕)。作为优化问题的一部分,此插值将被调用数百万次,因此性能非常重要,不能简单地使用生成网格并获取跟踪的方法,python,numpy,scipy,interpolation,mesh,Python,Numpy,Scipy,Interpolation,Mesh,到目前为止,我已经找到了一个接近我想要的scipy.interpolate函数,Bpf函数。但是,因为它讲述了一个分散的输入,我假设它没有很好的性能,我想用样条、线性和最近邻插值方法来测试它,我更了解这些方法,我希望它们会更快。所有实现这些的方法,我可以发现,将规则网格作为训练数据(如RectBivariateSpline)似乎也需要规则网格来插值 这段代码希望能明确我的要求 import numpy as np import scipy as sp import scipy.interpola

到目前为止,我已经找到了一个接近我想要的scipy.interpolate函数,Bpf函数。但是,因为它讲述了一个分散的输入,我假设它没有很好的性能,我想用样条、线性和最近邻插值方法来测试它,我更了解这些方法,我希望它们会更快。所有实现这些的方法,我可以发现,将规则网格作为训练数据(如RectBivariateSpline)似乎也需要规则网格来插值

这段代码希望能明确我的要求

import numpy as np
import scipy as sp
import scipy.interpolate as interp

x = np.arange(0,2*np.pi,.1)
y = x
xmesh,ymesh = np.meshgrid(x,y)
zmesh = np.sin(xmesh)+np.cos(ymesh)
rbf = interp.Rbf(xmesh, ymesh, zmesh, epsilon=2)
xI = np.arange(0,np.pi,.05)
yI = xI
XI, YI = np.meshgrid(xI,yI)
# Notice how this is happy to take a vector or grid as input   
zI = rbf(xI, yI)
ZI = rbf(XI,YI) # equiv. to zImesh
myspline = interp.RectBivariateSpline(x, y, zmesh)
# myspline takes vectors as input but makes them into meshes for evaluation 
splineoutput = myspline(xI, yI) 
# myspline returns ZI but I want zI
print(splineoutput)
print(ZI)
print(zI)
我是否可以使用类似于矩形二元样条线的函数,但得到zI(向量)而不是zI(网格)?或者,是否有另一个函数族可以按照我希望的方式在其他优化方法上工作,如果是,我应该寻找什么

这只是一个简短的提醒,我正在寻找一种快速优化技术,用于处理相对较大的数据阵列(20000多个条目),网格点之间的距离很小,并且数据非常平滑。我怀疑有一种简单的方法可以满足我对现有库的需求,但我找不到。感谢您的帮助。

此:

例如,scipy v0.14.0中的
myspline.ev(xI,yI)

采用可选的
grid=
关键字参数,默认为
True

网格:bool

是在输入数组跨越的网格上还是在输入数组指定的点上评估结果

因此,您可以使用:

splineoutput = myspline(xI, yI, grid=False)

这似乎正是我想要的。我知道有一些内置的东西可以帮助我。谢谢!也可以看到这个关于n维情况的答案: