次の抜粋は、numpy ルックアップ関数を構築しようとしている 500 行のテーブルです。私の問題は、値が非線形であることです。
ユーザーはdensity
、volume
、および を入力しcontent
ます。したがって、関数は次のようになります。
def capacity_lookup(density, volume, content:
たとえば、一般的なユーザー エントリは次のようになりますcapacity_lookup (47, 775, 41.3)
。この関数は、値 45 と 50、密度 700 と 800、コンテンツ 40 と 45 の間を補間する必要があります。
表の抜粋は次のとおりです。
Volume Density Content
<30 35 40 45 50>=
45.0 <=100 0.1 1.8 0.9 2.0 0.3
45.0 200 1.5 1.6 1.4 2.4 3.0
45.0 400 0.4 2.1 0.9 1.8 2.5
45.0 600 1.3 0.8 0.2 1.7 1.9
45.0 800 0.6 0.9 0.8 0.4 0.2
45.0 1000 0.3 0.8 0.5 0.3 1.0
45.0 1200 0.6 0.0 0.6 0.2 0.2
45.0 1400 0.6 0.4 0.3 0.7 0.1
45.0 >=1600 0.3 0.0 0.6 0.1 0.3
50.0 <=100 0.1 0.0 0.5 0.9 0.2
50.0 200 1.3 0.4 0.8 0.2 2.7
50.0 400 0.4 0.1 0.7 1.3 1.7
50.0 600 0.8 0.7 0.1 1.2 1.6
50.0 800 0.5 0.3 0.4 0.2 0.0
50.0 1000 0.2 0.4 0.4 0.2 0.3
50.0 1200 0.4 0.0 0.0 0.2 0.0
50.0 1400 0.0 0.3 0.1 0.5 0.1
50.0 >=1600 0.1 0.0 0.0 0.0 0.2
55.0 <=100 0.0 0.0 0.4 0.6 0.1
55.0 200 0.8 0.3 0.7 0.1 1.2
55.0 400 0.3 0.1 0.3 1.1 0.7
55.0 600 0.4 0.3 0.0 0.6 0.1
55.0 800 0.0 0.0 0.0 0.2 0.0
55.0 1000 0.2 0.1 0.2 0.1 0.3
55.0 1200 0.1 0.0 0.0 0.1 0.0
55.0 1400 0.0 0.2 0.0 0.2 0.1
55.0 >=1600 0.0 0.0 0.0 0.0 0.1
質問
500 行のテーブルを保存して、非線形データを補間し、ユーザー入力に基づいて正しい値を取得するにはどうすればよいですか?
明確化
- ユーザーが次のベクトル (775、47、41.3) を入力した場合、プログラムは次の 4 つのベクトルの間で補間された値を返す必要が
45.0, 600, 0.2, 1.7
あり45.0, 800, 0.8, 0.4
ます50.0, 600, 0.1, 1.2
。50.0, 800, 0.4, 0.2
- データが設計の numpy 配列として DB からプルされると仮定します