我有一个形状为 (50000, 3000) 的二维地震数据阵列
我需要对 axis=-1 中的所有内容进行 1d 插值
如果 z=值,t0=值时间,tx=新时间,我当前正在做
for i in range(dataset.size):
result[i,:] = np.interp(tx[i,:], t0[i,:], z[i,:])
毫不奇怪,这需要几个小时。
t0 已排序但采样不规则
tx 已排序并定期采样
对于显着加速代码有什么建议吗?
仅限 numpy/scipy 解决方案
最佳答案
取决于您想要实现的目标。如果您知道感兴趣的区域在哪里,则可以使用数组切片来插入数据的一小部分。或者您可能想通过使用统计指标来了解全局。
我认为没有办法显着加速 np.interp()
本身,因为它本质上遍历了数据中的所有点。您可以尝试 scipy.interpolate
中的 interp1d()
,但我再次认为不会有显着的性能差异。
关于python - (50000,3000) numpy 数组沿 axis=-1 的快速插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40034623/