以下摘录是我正在尝试为其构建 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),程序应返回以下四个向量之间的插值:
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 数组