Scipy:改变插值的dtype

问题描述 投票:0回答:1

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

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

python numpy scipy numpy-dtype
1个回答
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对象的调用方法不会转换输入数据,但是由于np.dot的数据类型,NumPy无论如何都会在self.nodes中执行此操作:

return np.dot(self._function(r), self.nodes).reshape(shp)
© www.soinside.com 2019 - 2024. All rights reserved.