Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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.interpolate.griddata速度如此之慢?_Python_Numpy_Scipy_Interpolation - Fatal编程技术网

Python 为什么scipy.interpolate.griddata速度如此之慢?

Python 为什么scipy.interpolate.griddata速度如此之慢?,python,numpy,scipy,interpolation,Python,Numpy,Scipy,Interpolation,我试图使用scipy.interpolate.griddata在常规网格上非的约400000个数据点之间进行插值。然而,我似乎永远都无法让它跑完!我试图在网格上200x200(~40000)个数据点上插值函数的值。下面是我发出的函数调用: 我已经查看了从load\u data输出的数据,似乎一切都加载得很好。raw_x_val、raw_y_val和raw_z_val的维度为(410500,)。我让它运行了大约半个小时,但它从未真正结束! 或者,我尝试在MATLAB中运行一组非常类似的函数调用,

我试图使用
scipy.interpolate.griddata
在常规网格上的约400000个数据点之间进行插值。然而,我似乎永远都无法让它跑完!我试图在网格上200x200(~40000)个数据点上插值函数的值。下面是我发出的函数调用:

我已经查看了从
load\u data
输出的数据,似乎一切都加载得很好。
raw_x_val
raw_y_val
raw_z_val
的维度为
(410500,)
。我让它运行了大约半个小时,但它从未真正结束! 或者,我尝试在
MATLAB
中运行一组非常类似的函数调用,我能够在大约2秒钟内加载并插值所有内容


我是否在python中做了一些错误的事情,或者仅仅是
scipy.interpolate.griddata
函数不用于处理此类数据。或者,你们中的任何人都会对我可以使用哪些函数/库来实现这一点提出建议。理想情况下,我不想在
MATLAB

中执行此操作,我建议从问题中删除标记,因为您不需要该语言的答案。不过我可以告诉你,MATLAB可以在
griddata
中轻松处理4000k个数据点,谢谢,我已经修复了它!MATLAB似乎在处理数据方面没有问题,我正试图用开源代码对我的数据进行分析,这样我就可以将程序分发给其他人。奇怪的是,scipy v0.14的文档中说,
griddata()
包含3个位置参数,而您只有两个。您使用的是什么版本?现在已经清除了,是否可以添加到数据集的链接?以及指定
min_interp_val
max_interp_val
适合您的内容,以便其他人可以重现该问题。现在看起来更像样了,我猜你的scipy安装不正常。也许考虑重新安装SISPY?我从<代码> GRIDATAL()/<代码> DOC测试了一个修改的示例,其中410500个点被插入到一个200×200的网格中。在我的机器上,
griddata()
调用需要4秒钟。你能试着运行它并告诉我你需要多长时间吗?我建议从问题中去掉标签,因为你不想用那种语言回答。不过我可以告诉你,MATLAB可以在
griddata
中轻松处理4000k个数据点,谢谢,我已经修复了它!MATLAB似乎在处理数据方面没有问题,我正试图用开源代码对我的数据进行分析,这样我就可以将程序分发给其他人。奇怪的是,scipy v0.14的文档中说,
griddata()
包含3个位置参数,而您只有两个。您使用的是什么版本?现在已经清除了,是否可以添加到数据集的链接?以及指定
min_interp_val
max_interp_val
适合您的内容,以便其他人可以重现该问题。现在看起来更像样了,我猜你的scipy安装不正常。也许考虑重新安装SISPY?我从<代码> GRIDATAL()/<代码> DOC测试了一个修改的示例,其中410500个点被插入到一个200×200的网格中。在我的机器上,
griddata()
调用需要4秒钟。你能试着运行一下,告诉我你需要多长时间吗?
from scipy.interpolate import griddata
import numpy as np

#Load in all the data
[raw_x_val,raw_y_val,raw_z_val] = load_data('filename')

#Generate interpolating mesh
[x_interp,y_interp] = np.meshgrid(np.linspace(min_interp_val,max_interp_val,200),np.linspace(min_interp_val,max_interp_val,200))
z_interp = griddata((raw_x_val,raw_y_val),raw_z_val,(x_interp,y_interp),method='linear')