所以我的数字程序有问题,我很好奇它是否是精度问题(即舍入错误).有没有一种快速的方法可以将程序中的所有浮点数组更改为float128数组,而无需通过我的代码并dtype='float128'在整个地方键入内容.我的数组都是float64,但我从未明确写过dtype='float64',所以我希望有一种方法可以改变这种默认行为.
我的机器的RAM在Windows XP上是3G,而'float32'数据的精度足以满足我当前的应用(基于Pandas 0.10 + NumPy 1.6.2).所以我想重置默认的浮动数据类型'float32'而不是'float64'减少内存使用量.怎么做 ?(我知道我可以明确地放入dtype = 'float32'功能,但我只想要一个全局设置)
如果我这样做有什么不好的副作用吗?(计算速度,兼容与其他模块的交互,未来的升级等.)
有没有办法指定与构造类似的默认dtype np.array(1.)?
特别是我想np.array(1.)成为np.float32和np.array(1)将来np.int32.相反,我得到np.float64和np.int64
在numpy中使用单精度(float32)编写代码时,太难写了。
首先,单精度浮子的寿命太长。我们必须按如下方式输入所有变量。
a = np.float32(5)
Run Code Online (Sandbox Code Playgroud)
但其他一些语言使用更简单的表示。
a = 5.f
Run Code Online (Sandbox Code Playgroud)
其次,艺术手术也不方便。
b = np.int32(5)+np.float32(5)
Run Code Online (Sandbox Code Playgroud)
我期望的类型b是 isnumpy.float32但它是numpy.float64。
当然,
b = np.add(np.int32(5), np.float32(5), dtype=np.float32)
Run Code Online (Sandbox Code Playgroud)
返回我想要的。但要替换所有操作就太长了。
有没有更简单的方法在 numpy 中使用单精度?