Comportamiento extraño de numpy.round

round() Python parece que siempre se redondea cuando se enfrentan con números x.5:

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

Pero numpy.round() parece ser inconsistente:

 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 

Esto puede introducir errores en ciertos casos. ¿Es esto un error o me falta algo?

Numpy redondea al valor par más cercano:

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

Para los valores exactamente a medio camino entre los valores decimales redondeados, NumPy se redondea al valor par más cercano. Así, 1.5 y 2.5 redondean a 2.0, -0.5 y 0.5 redondean a 0.0, etc.