我正在开发一个使用NumPy
和SciPy
的Python项目。我有以下内容:
x = numpy.arange(-5,5,0.01)
y = numpy.arange(-5,5,0.01)
我还有x
和y
的功能
# fxy = function of x and y in a grid
# fxy.shape = (y.shape[0], x.shape[0])
我想插入fxy
,以便我在[{1}}和x
点上的函数值分开y
或0.0001
,即我想要评估
0.001
fxy
我一直在尝试使用finer_x = numpy.arange(-5,5,0.0001)
finer_y = numpy.arange(-5,5,0.0001)
# finer_fxy = function of finer_x and finer_y in a grid
# finer_fxy.shape = (finer_y.shape[0], finer_x.shape[0])
中的bisplrep
和interp2d
函数,但我得到了
scipy.interpolate
和
File "/usr/lib/python2.7/dist-packages/scipy/interpolate/fitpack.py", line 873, in bisplrep
tx,ty,nxest,nyest,wrk,lwrk1,lwrk2)
MemoryError
分别使用这些功能。创建插值数据的最佳方法是什么?
答案 0 :(得分:3)
显然,你在你的NumPy盘子上放了太多分,不好意思听到这个。
我的建议是首先绘制数据,找到相对线性的区域,然后跳过它们。也就是说,尝试将阵列分解为不同的区域,并执行分段插值。
答案 1 :(得分:1)
您的数据位于常规网格上:尝试使用RectBivariateSpline。
bisplrep / interp2d用于分散数据。