11

I have a numpy structured array with a dtype such as:

A = numpy.empty(10, dtype=([('segment', '<i8'), ('material', '<i8'), ('rxN', '<i8')]))

I know I can create a mask such as:

A[A['segment'] == 42] = ...

Is there a way to create a mask on multiple columns? For example (I know this doesn't work, but I wish it did):

A[A['segment'] == 42 and A['material'] == 5] = ...
gerrit
  • 24,025
  • 17
  • 97
  • 170
jlconlin
  • 14,206
  • 22
  • 72
  • 105

1 Answers1

12

You can use the & operator instead of and:

A[(A['segment'] == 42) & (A['material'] == 5)]

Note that extra parantheses are required.

Sven Marnach
  • 574,206
  • 118
  • 941
  • 841