[Numpy-discussion] adding booleans

Robert Kern robert.kern at gmail.com
Sat Jun 8 07:54:56 EDT 2013

On Sat, Jun 8, 2013 at 12:40 PM,  <josef.pktd at gmail.com> wrote:
> Question about namespace
> why is there bool and bool_ ?
>>>> np.bool(True) + np.bool(True)
> 2
>>>> np.bool_(True) + np.bool_(True)
> True
>>>> type(np.bool(True))
> <type 'bool'>
>>>> type(np.bool_(True))
> <type 'numpy.bool_'>
> I didn't pay attention to the trailing underline in Pauli's original example

`np.bool is __builtin__.bool`. It's a backwards-compatibility alias
for an old version of numpy that used the name `np.bool` for the
scalar type now called `np.bool_` (similarly for `np.float`, `np.int`,
and `np.complex`). Since `from numpy import *` caused name collisions,
we moved the scalar types to their current underscored versions.
However, since people had started to use `dtype=np.bool`, we just
aliased the builtin type objects to keep that code working. I would
love to be able to remove those since they are an unending source of
confusion. However, there is no good way to issue deprecation warnings
when you use them, so that means that upgrades would cause sudden,
unwarned breakage, which we like to avoid.

Robert Kern

More information about the NumPy-Discussion mailing list