[Numpy-discussion] adding booleans
Nathaniel Smith
njs@pobox....
Fri Jun 7 18:48:07 CDT 2013
On 7 Jun 2013 21:58, <josef.pktd@gmail.com> wrote:
>
> Interesting observation, (while lurking on a pull request)
>
> >>> np.add.reduce(np.arange(5)<3)
> 3
> >>> np.add((np.arange(5)<3), (np.arange(5)<3))
> array([ True, True, True, False, False], dtype=bool)
>
>
> I often use summing of an array of boolean but didn't know the second
behavior
...yeah weird. My gut reaction is that it's a bug. Addition on bools should
either be an error, undefined but doable via an implicit upcast to int
(analogous to calling np.sin on an int array triggering an upcast to
float), or xor (i.e., addition mod 2). But apparently we're inconsistent -
add.reduce upcasts, and add.__call__, uh... upcasts and then downcasts,
maybe? It's like if np.sin on an int array returned ints? I can't see how
to get the quoted behaviour in any conceptually coherent way. But maybe I'm
missing something.
-n
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20130608/c5733fc1/attachment.html
More information about the NumPy-Discussion
mailing list