Как маскировать структурированный массив numpy на нескольких столбцах?

У меня есть многоуровневый структурированный массив с типом dtype, например:

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

Я знаю, что могу создать маску, например:

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

Есть ли способ создать маску на нескольких столбцах? Например (я знаю, что это не работает, но я бы хотел):

A[A['segment'] == 42 and A['material'] == 5] = ...

Ответ 1

Вместо and вы можете использовать оператор &:

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

Обратите внимание, что необходимы дополнительные скобки.