On Fri, 2022-10-28 at 10:54 +0200, Sebastian Berg wrote:
> Hi all,
> 
> As mentioned earlier, I would like to propose changing the
> representation of scalars in NumPy.  Discussion and ideas on changes
> are much appreciated!
> 
> The main change is to show scalars as:
> 
> * `np.float64(3.0)`  ­instead of just `3.0`
> * `np.True_` instead of `True`
> * `np.void((3, 5), dtype=[('a', '<i8'), ('b', 'u1')])` instead of
>   `(3, 5)`
> * Use `np.` rather than `numpy.` for datetime/timedelta.



It has been a while, and it is time now to accept the NEP I think. 
Unless there is any serious concerns, I will consider it accepted in a
week.

There was always one piece which I now (mostly) have:  Auto-fixing the
documentation of NumPy and hopefully at least a good chunk of
downstream, based on:

    https://github.com/scientific-python/pytest-doctestplus

This might not be available quite immediately depending on timing, but
it only affects doc-testing and presumably no-one is doing that against
the nightlies anyway.


The one small concern was about not being able to copy paste
`np.float64(nan)` without quotes around the nan.
I had answered that in the last email of the thread: it is just more
pragmatic because of array reprensentation including it isn't ideal:
array([1.0, nan]) vs array([1.0, 'nan'])
(where the latter doesn't roundtrip without `dtype=`!)

> 
> This way it is clear for users that they are dealing with NumPy
> scalars
> which behave different from Python scalars.
> The `str()` that is given when using `print()` and the way arrays are
> shown will be unchanged.
> 
> The NEP draft can be found here:
> 
>     https://numpy.org/neps/nep-0051-scalar-representation.html
> 
> and it includes more details and related changes.
> 
> The implementation is largely finished and can be found here:
> 
>    https://github.com/numpy/numpy/pull/22449
> 
> W are fairly late in the release cycle and the change should not
> block
> other things.  So, the aim is to merge it early in the next release
> cycle.  That way downstream has time to fix documentation is wanted.
> 
> Depending on how discussion goes, I hope to formally propose the NEP
> fairly soon, so that the merging the implementation doesn't need to
> wait on NEP approval.
> 
> Cheers,
> 
> Sebastian
> 
> 
> 
> 
> On Thu, 2022-09-08 at 11:38 +0200, Sebastian Berg wrote:
> > 
> > TL;DR:  NumPy scalars representation is e.g. `34.3` instead of
> > `float32(34.3)`.  So the representation is missing the type
> > information.  What are your thoughts on changing that?
> > 
> > 
> > Hi all,
> > 
> > I am thinking about the next steps for NEP 50 (The NEP wants to fix
> > the
> > NumPy promotion rules, especially with respect to scalars):
> > 
> >     https://numpy.org/neps/nep-0050-scalar-promotion.html
> > 
> > In relation to that, there was one point that Stéfan brought up
> > previously.
> > 
> > The NumPy scalars (representation) currently print as numbers:
> > 
> >     >>> np.float32(34.3)
> >     34.3
> >     >>> np.uint8(5)
> >     5
> > 
> > That can already be confusing now.  However, it gets more
> > problematic
> > if NEP 50 is introduced since the behavior between a Python `34.3`
> > and
> > `np.float32(34.3)` would differ more than it does now (please refer
> > to
> > the NEP).
> > 
> > The change would be that we should print as:
> > 
> >     float64(34.3)  (or similar?)
> > 
> > This Email is mainly to ask for any feedback or concern on such a
> > change.  I suspect we may have to write a very brief NEP about it.
> > 
> > If there is little concern, maybe we could move forward such a
> > change
> > promptly.  Otherwise it could be moved forward together with NEP 50
> > and
> > take effect in a "major" release [1].
> > 
> > Cheers,
> > 
> > Sebastian
> > 
> > 
> > 
> > [1] Note that for me, even a major release would hopefully not
> > affect
> > the majority of users or be very disruptive.
> > 
> > _______________________________________________
> > NumPy-Discussion mailing list -- numpy-discussion@python.org
> > To unsubscribe send an email to numpy-discussion-le...@python.org
> > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> > Member address: sebast...@sipsolutions.net
> 
> 
> _______________________________________________
> NumPy-Discussion mailing list -- numpy-discussion@python.org
> To unsubscribe send an email to numpy-discussion-le...@python.org
> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> Member address: sebast...@sipsolutions.net


_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to