[Numpy-discussion] Deprecating python type aliases (np.int, np.long, np.str, ...)

Sebastian Berg sebastian at sipsolutions.net
Thu Jun 11 11:05:35 EDT 2020


On Thu, 2020-06-11 at 09:59 -0500, Sebastian Berg wrote:
> Hi all,
> 
> In the pull request: https://github.com/numpy/numpy/pull/14882
> Eric proposes to deprecate the type aliases which NumPy imports
> into its main namespace (e.g. np.int, np.bool, see table below [1]).
> 
> Right now there seems to be a consensus to move this forward and I
> plan
> on doing that, so this is a heads-up in case anyone has a differing
> opinion.
> 
> 
> The deprecation should not be very noisy as such, but I expect it
> will

Sorry, I made a mistake when considering the implementation. It may be
fairly noisy, but it is also very easy to avoid for the user.


> require many projects to update their code in the long run (although
> the changes are very simple).
> 
> One advantage is that some aliases are confusing, e.g. `np.float` is
> Python float, and thus actually a `float64` and not a C `float`,
> which
> is a `float32`.
> 
> For an example of how this affects a code-base, this is SciPy:
> https://github.com/scipy/scipy/pull/12344/commits/02def703b8b7b28ed315a658808364fd024bb45c
> (A chunk of the full PR unrelated style fixes).
> 
> Cheers,
> 
> Sebastian
> 
> 
> [1] Full table of deprecated aliases:
> 
> ==================  =====================  ==========================
> ==
> Deprecated          Equivalent to          Possibly intended numpy
> type
> ==================  =====================  ==========================
> ==
> ``numpy.bool``      ``bool``               `numpy.bool_`
> ``numpy.int``       ``int``                `numpy.int_` (default int
> dtype), `numpy.cint` (C ``int``)
> ``numpy.float``     ``float``              `numpy.float_`,
> `numpy.double` (equivalent)
> ``numpy.complex``   ``complex``            `numpy.complex_`,
> `numpy.cdouble` (equivalent)
> ``numpy.object``    ``object``             `numpy.object_`
> ``numpy.str``       ``str``                `numpy.str_`
> ``numpy.long``      ``numpy.compat.long``  `numpy.int_` (C ``long``),
> `numpy.longlong` (largest integer type)
> ``numpy.unicode``   ``numpy.compat.str``   `numpy.unicode_`
> ==================  =====================  ==========================
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20200611/48a909ae/attachment.sig>


More information about the NumPy-Discussion mailing list