0

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

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

4

1 回答 1

1

不,你总是得到 float64 类型。对于其他任何事情,在收到输出后使用.astype(np.float32)等进行转换。

我以 Rbf 为例:它对输入数据所做的第一件事就是将其转换np.float_为 float64 的别名。如此处所示

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)
于 2017-12-26T05:26:05.410 回答