如何在float32而不是float64上强制执行python float操作

时间:2013-12-25 02:43:41

标签: python numpy floating-point operators precision

我想在float32而不是float64上做一些maths float operation(+,-,x,/)。我需要在numbernumpy.array上执行这些操作。还有一些numpy的数学函数,例如sqrt mean

2 个答案:

答案 0 :(得分:9)

numpy.float32会帮忙吗?

>>>PI=3.1415926535897
>>> print PI*PI
9.86960440109
>>> PI32=numpy.float32(PI)
>>> print PI32*PI32
9.86961

如果你想在float32上进行数学运算,将操作数转换为float32可能对你有帮助。

答案 1 :(得分:0)

使用numpy.ndarray.astype

import numpy as np

arr_f64 = np.array([1.0000123456789, 2.0000123456789, 3.0000123456789], dtype=np.float64)
arr_f32 = arr_f64.astype(np.float32)

注意精度:

np.set_printoptions(precision=16)
print("arr_f64 = ", arr_f64)
print("arr_f32 = ", arr_f32)

给予

arr_f64 =  [1.0000123456789 2.0000123456789 3.0000123456789]
arr_f32 =  [1.0000124000000 2.0000124000000 3.0000124000000]