计算逆时,会将数组转换为
float64,其机器epsilon为1e-15。ε是浮点数的
相对量化步骤 。
如有疑问,我们可以使用
finfo函数询问有关浮点数据类型的numpy信息。在这种情况下
np.finfo('float64')finfo(resolution=1e-15, min=-1.7976931348623157e+308, max=1.7976931348623157e+308, dtype=float64)因此,从技术上讲,您的值小于类型
eps的0的精确表示
float64。
如果仅仅是表示而困扰您,您可以告诉numpy不要打印小的浮点数(0到1 eps或更小):
np.set_printoptions(suppress=True)
之后,您的打印语句返回:
[[ 0. -2.5] [-2. -6.5]]
请注意,这是所有浮点实现共有的通用数值问题。您可以找到有关SO上浮点舍入错误的更多信息
或在网上:
- 浮点精度问题
- 每个计算机科学家都应了解的浮点运算法则



