2017-11-18 233 views
0

我正在嘗試使用Rbf插入45維空間中定義的函數。我怎樣才能將空間座標插入scipy.interpolate.Rbf?如何在N維中使用scipy.interpolate.Rbf?

語法Rbf(x, y, z, d)

有沒有把x, y, z作爲一個列表/陣列的方式,因爲在我的情況下,它是x1, x2, ..., x45

回答

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)