我试图使用Rbf来插值在45维空间中定义的函数。如何将空格坐标插入scipy.interpolate.Rbf?
语法为Rbf(x, y, z, d)
有没有办法将x, y, z
作为一个列表/数组,因为在我的情况下它是x1, x2, ..., x45
?
答案 0 :(得分:1)
如果你的点和数据包含在一个Numpy数组中,你可以在函数调用中使用解包语法*array
In [4]: a = np.arange(30)
In [5]: a = a.reshape((6,5))
In [6]: a
Out[6]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24],
[25, 26, 27, 28, 29]])
In [7]: f = Rbf(*a)
In [8]: f((2,3),(7,8),(12,13),(17,18),(22,23))
Out[8]: array([ 27., 28.])
当使用由Rbf
In [9]: x = np.array((4,9,14,19,24))
In [10]: f(*x)
Out[10]: array(29.0)