On Fri, Oct 28, 2022 at 10:57 AM Sebastian Berg <sebast...@sipsolutions.net> 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. > These all seem like good ideas to me, thanks for working on this Sebastian. Cheers, Ralf > 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: ralf.gomm...@gmail.com >
_______________________________________________ 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