非構造化データの 3 つの列があり、それらに対して二変量スプライン フィットを実行したいと考えています。私はまだPythonのクラスに慣れていないので、これを行う方法を正確に理解していません. 私の問題を示すために、簡単なコードを作成しました。
#! /usr/bin/env python3
import numpy as np
from scipy import interpolate
#an array of 3 columns:
a=np.zeros((200, 3))
a[:,0]=np.random.uniform(0,1,200)
a[:,1]=np.random.uniform(3,5,200)
a[:,2]=np.random.uniform(10,12,200)
#find the boundries
min_x, max_x = np.amin(a[:,0]), np.amax(a[:,0])
min_y, max_y = np.amin(a[:,1]), np.amax(a[:,1])
#Set the resolution:
x_res=1000
y_res=int( ( (max_y-min_y) / (max_x-min_x) )*x_res )
#Make a grid
grid_x, grid_y = np.mgrid[min_x:max_x:x_res*1j, min_y:max_y:y_res*1j]
sbsp=interpolate.SmoothBivariateSpline(a[:,0], a[:,1], a[:,2])
b=sbsp.ev(4,5)
#c=sbsp.ev(grid_x, grid_y)
print(b)
これにより、1 つのポイントの補間値が得られますが、最後から 2 行目をコメントアウトすると機能しません。グリッド上でスプライン補間を取得する方法について誰かが私を案内してくれたら、とても感謝しています。前もって感謝します。