我有一个2D形状的地震数据阵列(50000,3000)
我需要1d插入轴= -1
中的所有内容如果z =值,t0 =值时间,tx =新时间,我正在做
for i in range(dataset.size):
result[i,:] = np.interp(tx[i,:], t0[i,:], z[i,:])
毫不奇怪,它需要数小时。
t0已排序但不定期抽样
对tx进行排序和定期采样
有关显着加快代码速度的任何建议吗?
仅限于numpy / scipy解决方案
答案 0 :(得分:0)
取决于你想要达到的目标。如果您知道有趣区域的位置,则可以使用数组切片来仅插入数据的一小部分。或者您可能希望通过使用统计指标来了解全局。
我认为没有办法显着加快np.interp()
本身的速度,因为它基本上遍历了数据中的所有点。您可以从interp1d()
尝试scipy.interpolate
,但我认为不会有明显的性能差异。