如何在N维中使用scipy.interpolate.Rbf?

时间:2017-11-18 09:50:12

标签: python numpy scipy interpolation

我试图使用Rbf来插值在45维空间中定义的函数。如何将空格坐标插入scipy.interpolate.Rbf?

语法为Rbf(x, y, z, d)

有没有办法将x, y, z作为一个列表/数组,因为在我的情况下它是x1, x2, ..., x45

1 个答案:

答案 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)