[Numpy-discussion] element-wise logical operations on numpy arrays

Charles R Harris charlesr.harris at gmail.com
Wed Jul 9 12:34:06 EDT 2008


On Wed, Jul 9, 2008 at 10:21 AM, Catherine Moroney <
Catherine.M.Moroney at jpl.nasa.gov> wrote:

> Hello,
>
> I have a question about performing element-wise logical operations
> on numpy arrays.
>
> If "a", "b" and "c" are numpy arrays of the same size, does the
> following
> syntax work?
>
> mask = (a > 1.0) & ((b > 3.0) | (c > 10.0))
>
> It seems to be performing correctly, but the documentation that I've
> read
> indicates that "&" and "|" are for bitwise operations, not element-by-
> element operations in arrays.
>

They perform bitwise operations element by element. They only work for
integer/bool arrays and you should avoid mixing signed/unsigned types
because of the type promotion rules. Other than that, things should work
fine.


> I'm trying to avoid using "logical_and" and "logical_or" because they
> make the code more cumbersome and difficult to read.  Are "&" and "|"
> acceptable substitutes for numpy arrays?
>

Generally, yes, but they are more restrictive in the types they accept.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080709/8fc5e2b0/attachment.html>


More information about the NumPy-Discussion mailing list