我正在尝试scipy.interpolation.griddata帮助文件中给出的第2个示例 . 它适用于“最近”的插值 . 但它使用填充了纳米的矩阵,同时使用任何其他插值,如“线性”或“立方体” . 如果我给出参数fill_value = 5,它给出填充5的矩阵 .
这是由于某些安装问题吗?
我正在尝试他们在帮助文档中给出的完全相同的东西 . 但不知何故,它给出了结果,好像我要求插值的点位于输入点之外 . (这不是!!我按照例子)
我将发布示例来重现错误(采取doc格式)
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:10j, 0:1:10j]
points = np.random.rand(100, 2)
values = func(points[:,0], points[:,1])
from scipy.interpolate import griddata
grid_z0 = griddata(points, values, (grid_x, grid_y), method='nearest')
grid_z1 = griddata(points, values, (grid_x, grid_y), method='linear')
grid_z2 = griddata(points, values, (grid_x, grid_y), method='cubic')
我得到grid_z1和grid_z2是一个填充nan的矩阵 .
UPDATE :我在另一台Ubuntu 11.10机器上安装了所有软件包 . 并且相同的脚本给出了完全正确的答案 . 以前我在尝试使用Porteus发行版(实时slackware系列) . 因此,我认为我可以安全地得出结论,这是我的安装中的一些问题 . 任何人都知道什么可能出错?任何图书馆冲突都会导致这种行为吗?由于我的主机是Portues,我没有其他选择,只能修复其中的scipy .