Hi all,
there is a discussion about how `round(array)` should behave in:
https://github.com/numpy/numpy/issues/6248
There is some discussion about object arrays which should probably be
fixed for `around()` in that ago.
Otherwise, the is the question what to do about the fact that:
* round(np.float64(2.**64)) -> 18446744073709551616 (a Python int)
* round(np.array([2., 3., 2.**64]) can only return float or integer
The NumPy `np.round`/`np.around` (same function) functions always
…
[View More]return the same dtype.
We can either ignore that discrepancy, or opt to raise an error, so
that:
>>> round(np.array([2., 3.5]))
TypeError: Rounding a NumPy float array cannot return integers,
use `round(arr, ndigits=0)` or `round(arr, 0) to indicate that a
float result is desired.
In the call today, I think we leaned a bit towards ignoring it, but if
I read Aaron correctly, he prefers the error and it may be the
conservative choice.
We could of course do other things (i.e. return an integer `intp`
array) but that would probably require a hard error for overflows
(which is different from `np.rint(arr).astype(np.intp)`.
Are there any small or big opinions on this? It seems useful to enable
`round()` and is a bit of a shame to get caught up on the detail, but I
am not sure what the right choice is :).
- Sebastian
[View Less]