[Numpy-discussion] why numpy.round get a different result from python round function?

Stéfan van der Walt stefan at sun.ac.za
Tue Mar 10 10:50:01 EDT 2009


Hi David

2009/3/10 shuwj5460 at 163.com <shuwj5460 at 163.com>:
> I read the doc for numpy about round function:
>
> -----
> For values exactly halfway between rounded decimal values, Numpy rounds
> to the nearest even value. Thus 1.5 and 2.5 round to 2.0, -0.5 and 0.5
> round to 0.0, etc. Results may also be surprising due to the inexact
> representation of decimal fractions in the IEEE floating point standard
> [16] and errors introduced when scaling by powers of ten.
> ----
>
> why not numpy round  keep the same with python round function? or
> provide anothor function to do so?

In Python 2.6 and 3.0, rounding is also to the nearest even number.
You can round to nearest using something like

np.floor(np.abs(x) + 0.5) * np.sign(x)

Regards
Stéfan



More information about the NumPy-Discussion mailing list