【发布时间】:2014-12-06 02:06:18
【问题描述】:
有人知道为什么 Numpy 返回“-2.0000000000000004”而不是“-2”
>>> M = [[1,2],[3,4]]
>>> numpy.linalg.det(M)
-2.0000000000000004
我正在使用 Python 3.4.2 (x64)、Numpy 1.9.1 和 Windows 7 x64。
【问题讨论】:
-
归功于floating numbers。我不会担心的。它相当自然。
-
@Marcin 在 Numpy 文档中一切正常 - docs.scipy.org/doc/numpy/reference/generated/… numpy.linalg.det() 函数返回 -2.0 如果计算像 a=1*4-3*2 这样的数组的行列式,我获取 int 值 a=-2
-
@Natasha:阅读 Marcin 链接的教程(或 3.x version,几乎相同)。
-2.0000000000000004和-2相差一点点,所以这只是无意义的舍入错误。 -
他们可能将打印精度设置为 1 或 2,例如
np.set_printoptions(precision=2)。或者在 Ipython 中:%precision %0.2f -
现在一切都清楚了,谢谢同志们! :-*
标签: python windows python-3.x numpy runtime-error