On Wed, Feb 26, 2020 at 5:30 PM Ilhan Polat <ilhanpo...@gmail.com> wrote:

> Does this mean that np.round(np.float32(5)) return a 64 bit upcasted int?
>
> That would be really awkward for many reasons pandas frame size being
> bloated just by rounding for an example. Or numpy array size growing for no
> apparent reason
>
> I am not really sure if I understand why LSP should hold in this case to
> be honest. Rounding is an operation specific for the number instance and
> not for the generic class.
>
>
>
>
> On Wed, Feb 26, 2020, 21:38 Robert Kern <robert.k...@gmail.com> wrote:
>
>> On Wed, Feb 26, 2020 at 3:19 PM Hameer Abbasi <einstein.edi...@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
>>>
>>>
I think making numerical behavior different between arrays and numpy
scalars with the same dtype, will create many happy debugging hours.

(although I don't remember having been careful about the distinction
between python scalars and numpy scalars in some time.
I had some fun with integers in the scipy.stats discrete distributions,
until they became floats)

Josef



> 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
>>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to