我有一个形状为A = (X, Y, Z, Q)
的4维数据数组,我想为(x, y, z)
的每个值插入Q
位置,即最终得到一个数组长度为Q
。
我一直在scipy.interpolate.RegularGridInterpolator
- { - 1}} q
上使用q
这样做:
Q = np.zeros(A.shape[-1])
for q in range(len(Q)):
interp_f = RegularGridInterpolator([X,Y,Z], A[:,:,:,q])
v, = interp_f(np.array([x,y,z]))
Q[q] = v
这样可以正常运行,但由于A
的典型维度为(10, 10, 3, 25000)
,因此需要大约2分钟才能运行。
有更快(更快)的方法吗?
我真的很想在3D中进行三次样条插值而不是线性插值,但却无法找到3维数据的任何资源。
谢谢!