Как замаскировать структурированный массив с несколькими столбцами? - PullRequest
11 голосов
/ 22 июля 2011

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

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

Я знаю, что могу создать маску, такую ​​как:

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

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

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

1 Ответ

12 голосов
/ 22 июля 2011

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

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

Обратите внимание, что требуются дополнительные паразиты.

...