Scipy:改变插值的dtype

时间:2017-03-21 04:17:18

标签: python numpy scipy numpy-dtype

是否可以强制scipy的插值输出具有特定numpy dtype的数组?

例如,从scipy.interpolate.Rbf()输出一个float32数组?

1 个答案:

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