我在循环内使用 Scipy 的 griddata 时遇到问题。基本上发生的情况是,在循环运行时内存会无限制地增长。
要重现该问题,只需将示例放入
http://docs.scipy.org/doc/scipy/reference/ generated/scipy.interpolate.griddata.html
在循环内:
for i in range(100000):
grid_z1 = griddata(points, values, (grid_x, grid_y), method='linear')
我的Python版本是2.7.3,我的numpy版本是1.7.0,我的scipy版本是0.12.0b1。我在 WIndows 7 上运行它。
这是一个错误吗?如何多次重复插值而不引发内存泄漏问题?
与其余代码:
def func(x, y):
return x*(1-x)*np.cos(4*np.pi*x) * np.sin(4*np.pi*y**2)**2
grid_x, grid_y = np.mgrid[0:1:100j, 0:1:200j]
points = np.random.rand(1000, 2)
values = func(points[:,0], points[:,1])
for i in range(100000):
grid_z1 = griddata(points, values, (grid_x, grid_y), method='linear')
提前致谢。