[Numpy-discussion] Deprecate boolean math operators?

josef.pktd at gmail.com josef.pktd at gmail.com
Thu Dec 5 22:35:34 EST 2013


On Thu, Dec 5, 2013 at 10:33 PM,  <josef.pktd at gmail.com> wrote:
> On Thu, Dec 5, 2013 at 5:37 PM, Sebastian Berg
> <sebastian at sipsolutions.net> wrote:
>> Hey,
>>
>> there was a discussion that for numpy booleans math operators +,-,* (and
>> the unary -), while defined, are not very helpful. I have set up a quick
>> PR with start (needs some fixes inside numpy still):
>>
>> https://github.com/numpy/numpy/pull/4105
>>
>> The idea is to deprecate these, since the binary operators |,^,| (and
>> the unary ~ even if it is weird) behave identical. This would not affect
>> sums of boolean arrays. For the moment I saw one "annoying" change in
>> numpy, and that is `abs(x - y)` being used for allclose and working
>> nicely currently.
>
> I like mask = mask1 * mask2
>
> That's what I learned working my way through scipy.stats.distributions
> a long time ago.
>
> But the main thing is that we use boolean often as 0,1 integer array
> in the actual calculations, and I only sometimes add the astype(int)
>
> x[:, None] * (y[:, None] == np.unique(y))
>
> I always thought booleans *are* just 0, 1 integers, until last time
> there was the discussion we saw the weird + or - behavior.
>
> We also use rescaling to (-1, 1) in statsmodels   y = mask * 2 - 1
> (but maybe we convert to integer first)
> My guess is that I only use multiplication heavily, where the boolean
> is a dummy variable with 0 if male and 1 if female for example.
>
> Nothing serious but nice not to have to worry about casting with
> astype(int) first.
>
> x[:, None] * (y[:, None] == np.unique(y)).astype(int)     (Is the
> bracket at the right spot ?)


what about np.dot,    np.dot(mask, x) which is the same as (mask * x).sum(0) ?

Josef

>
> Josef
>
>
>>
>> - Sebastian
>>
>> _______________________________________________
>> 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