如何在多列上屏蔽numpy结构化数组?

jlc*_*lin 11 python numpy mask masked-array

我有一个带有dtype的numpy结构化数组,例如:

A = numpy.empty(10, dtype=([('segment', '<i8'), ('material', '<i8'), ('rxN', '<i8')]))
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建一个面具,例如:

A[A['segment'] == 42] = ...
Run Code Online (Sandbox Code Playgroud)

有没有办法在多列上创建掩码?例如(我知道这不起作用,但我希望它能做到):

A[A['segment'] == 42 and A['material'] == 5] = ...
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 12

您可以使用&运算符代替and:

A[(A['segment'] == 42) & (A['material'] == 5)]
Run Code Online (Sandbox Code Playgroud)

请注意,需要额外的parantheses.