是否可以强制scipy的插值输出具有特定numpy dtype的数组?
例如,从scipy.interpolate.Rbf()输出一个float32数组?
答案 0 :(得分:1)
不,你总是得到float64类型。对于其他任何事情,请在收到后使用.astype(np.float32)
等投射输出
我以Rbf为例:它对输入数据做的第一件事是将其转换为np.float_
,即float64的别名。 As seen here:
self.xi = np.asarray([np.asarray(a, dtype=np.float_).flatten()
for a in args[:-1]])
插值的节点是从那里计算的,因此它们也是float64。 Rbf对象的调用方法不会转换输入数据,但NumPy无论如何都会在np.dot
内执行此操作,因为数据类型为self.nodes
:
return np.dot(self._function(r), self.nodes).reshape(shp)