numpy.round的奇怪行为

时间:2017-07-10 20:43:38

标签: python python-2.7 numpy rounding

当遇到x.5数字时,Python round()似乎总是围捕:

print round(1.5),round(2.5),round(3.5),round(4.5)
>>> 2.0 3.0 4.0 5.0

numpy.round()似乎不一致:

import numpy as np
print np.round(1.5),np.round(2.5),np.round(3.5),np.round(4.5)
>>> 2.0 2.0 4.0 4.0

这可能会在某些情况下引入错误。这是一个错误还是我错过了什么?

1 个答案:

答案 0 :(得分:4)

numpy rounds到最近的偶数值:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.around.html#numpy.around

  

对于正好在舍入小数值之间的值,NumPy舍入到最接近的偶数值。因此1.5和2.5轮到2.0,-0.5和0.5轮到0.0等等。