我想使用scipy LinearNDInterpolator函数(Python 2.7)插入一些3-d数据。但我无法弄清楚如何使用它:下面是我的尝试。我收到错误ValueError:不同数量的值和点。这让我相信“coords”的形状不适合这些数据,但它在文档中看起来就像形状没问题。
请注意,在我真正想要使用的数据中(而不是这个例子),我的网格间距是不规则的,所以像RegularGridInterpolator这样的东西是不行的。
非常感谢你的帮助!
def f(x,y,z):
return 2 * x**3 + 3 * y**2 - z
x = np.linspace(1,2,2)
y = np.linspace(1,2,2)
z = np.linspace(1,2,2)
data = f(*np.meshgrid(x, y, z, indexing='ij', sparse=True))
coords = np.zeros((len(x),len(y),len(z),3))
coords[...,0] = x.reshape((len(x),1,1))
coords[...,1] = y.reshape((1,len(y),1))
coords[...,2] = z.reshape((1,1,len(z)))
coords = coords.reshape(data.size,3)
my_interpolating_function = LinearNDInterpolator(coords,data)
pts = np.array([[2.1, 6.2, 8.3], [3.3, 5.2, 7.1]])
print(my_interpolating_function(pts))