私は第1軸で補間したい配列を持っています。現時点では、私は、この例のようにそれをやっている: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)
私が使用するデータは、5日間の10年は、ドメイン内の各緯度と経度の値の平均を表します。私は毎日の値の配列を作成したい。
私もスプラインを使ってみました。私は彼らがどのように動作するかは分かりませんが、それほど速くはありませんでした。
forループを使用せずにこれを行う方法はありますか? forループを使用する必要がある場合、これを高速化する他の方法はありますか?
ご協力いただきありがとうございます。
良い点! OPが本当に1D補間(双線形ではない)を望むなら、これが行く方法です。 –
これもうまくいきます。ありがとうございました!興味深いことに、(この場合は少なくとも)この方法では、補間された配列の平均値が元の配列の平均値に近づくことに注意してください。 – nicholaschris