Hi all,

NumPy has awkward behaviour when it comes to promotion with 0-D arrays,
and Python scalars.  This is both a technical challenge (numpy needs to
inspect the values where it shouldn't), as well as surprising for
users.

Roughly speaking, I have made a proposal under the 3 points:
* NumPy scalars and NumPy arrays always behave the same.
* A NumPy array always respects the dtype
* A Python scalar is "weak" so that uint8_arr + 3 returns a uint8_arr

The NEP is here:
https://25105-908607-gh.circle-artifacts.com/0/doc/neps/_build/html/nep-0050-scalar-promotion.html

But please refer to the PR, since above may go away or get outdated:
https://github.com/numpy/numpy/pull/21103


Note that I have not 100% made up my mind on these, because some
alternatives exist which may give a somewhat easier transition. 
Because of this, this is a very early draft (expect large
changes/rewrite), but some feedback/input may go a long way to make
sure we keep moving on this project.

For those aware of the issues, it probably makes sense to skip ahead to
the "Alternatives" section.  I do expect that a large refactor/rewrite
will be necessary, but need some feedback to keep moving.


I had send the poll recently:
https://discuss.scientific-python.org/t/poll-future-numpy-behavior-when-mixing-arrays-numpy-scalars-and-python-scalars/202

just to say, I have not completely ignored it, although (as expected)
the results do not give a very simple answer.  Many agree with the
choices I made, but some also seem to prefer "strong" Python types, or
more special handling of NumPy scalars.


Please do not hesitate to give opinions!  I am not sure we can find a
clear "obviously right" solution.  Especially since there are tough
backwards compatibility choices (even if most users are likely not to
notice).  So any input is appreciated.

Cheers,

Sebastian


Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
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