[Numpy-discussion] Deprecate boolean math operators?
josef.pktd at gmail.com
josef.pktd at gmail.com
Thu Dec 5 23:28:47 EST 2013
On Thu, Dec 5, 2013 at 11:00 PM, Alexander Belopolsky <ndarray at mac.com> wrote:
>
> On Thu, Dec 5, 2013 at 10:35 PM, <josef.pktd at gmail.com> wrote:
>>
>> what about np.dot, np.dot(mask, x) which is the same as (mask *
>> x).sum(0) ?
>
>
> I am not sure which way your argument goes, but I don't think you would find
> the following natural:
>
>>>> x = array([True, True])
>>>> dot(x,x)
> True
this is weird but I would never do that. maybe I would, but then i
would add 1 non boolean
>>>> (x*x).sum()
> 2
>>>> (x*x).sum(0)
> 2
That sounds right to me
>>> (mask**2 == mask).all()
True
>>>> (x*x).sum(False)
> 2
What is axis=False?
The way my argument goes:
I'm a heavy user of using * pretending the bool behaves like an int,
and of sum and accumulate.
It would be a pain to loose them.
>From where I come from (*) a bool is not a boolean it's just 0, 1,
given that numpy casting rules apply and it's sometimes cast back to
(0, 1) Does this work as explanation for the pattern of + and -
also.
(*) places where the type system is more restricted.
What about max?
>>> np.maximum(mask, mask)
array([False, False, False, True, True], dtype=bool)
>>> np.maximum(mask, ~mask)
array([ True, True, True, True, True], dtype=bool)
>>> mask + mask
array([False, False, False, True, True], dtype=bool)
>>> mask + ~mask
array([ True, True, True, True, True], dtype=bool)
first mask is if the wife has a car, second mask is if the husband has a car.
The max is if there is a car in the family.
What's this as logical?
Josef
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
More information about the NumPy-Discussion
mailing list