
great another object array np.asarray([round(x_i.item()) for x_i in np.array([1, 2.5, 2e20, 2e200])]) array([1, 2, 200000000000000000000, 199999999999999993946624442502072331894900655091004725296483501900693696871108151068392676809412503736055024831947764816364271468736556969278770082094479755742047182133579963622363626612334257709776896], dtype=object) I would rather have numpy consistent with numpy than with python On Wed, Feb 26, 2020 at 4:38 PM Robert Kern <robert.kern@gmail.com> wrote:
On Wed, Feb 26, 2020 at 3:19 PM Hameer Abbasi <einstein.edison@gmail.com> wrote:
There still remains the question, do we return Python ints or np.int64s?
- Python ints have the advantage of not overflowing. - If we decide to add __round__ to arrays in the future, Python ints may become inconsistent with our design, as such a method will return an int64 array.
This was issue was discussed in the weekly triage meeting today, and the following plan of action was proposed:
- change scalar floats to return integers for __round__ (which integer type was not discussed, I propose np.int64) - not change anything else: not 0d arrays and not other numpy functionality
The only reason that float.__round__() was allowed to change to returning
ints was because ints became unbounded. If we also change to returning an integer type, it should be a Python int.
-- Robert Kern _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion