2011-07-22 10 views
10

mam numpy uporządkowaną tablicę z dtype takich jak:Jak zamaskować numpy uporządkowaną tablicę na wielu kolumnach?

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

wiem, że mogę tworzyć maski, takich jak:

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

Czy istnieje sposób, aby utworzyć maskę na wielu kolumnach? Na przykład (wiem, że to nie działa, ale szkoda, że ​​tak):

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

Odpowiedz

11

Można użyć operatora & zamiast and:

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

Należy pamiętać, że konieczne są dodatkowe nawiasy.

+0

Proste, uwielbiam to. Dzięki! – jlconlin