我有一個數組,我想插入第一個軸。目前,我正在做這樣的例子:在Python中插值3d數組。如何避免循環?
import numpy as np
from scipy.interpolate import interp1d
array = np.random.randint(0, 9, size=(100, 100, 100))
new_array = np.zeros((1000, 100, 100))
x = np.arange(0, 100, 1)
x_new = np.arange(0, 100, 0.1)
for i in x:
for j in x:
f = interp1d(x, array[:, i, j])
new_array[:, i, j] = f(xnew)
我使用的數據代表一個域中的每個緯度和經度10年5天的平均值的。我想創建一個日常值的數組。
我也試過使用樣條線。我真的不知道他們是如何工作的,但速度並不快。
有沒有辦法做到這一點,而不使用for循環? 如果必須使用for循環,還有其他方法可以加速嗎?
非常感謝您的任何建議。
好點!如果OP想要真正的一維插值(而不是雙線性),那麼這就是要走的路。 –
這也很好。謝謝!有趣的是(至少在這種情況下)這種方法導致內插數組的平均值更接近原始數組的平均值。 – nicholaschris