如何对多个列进行numpy结构化数组的掩码处理?

11 投票
1 回答
1926 浏览
提问于 2025-04-16 22:05

我有一个numpy的结构化数组,它的类型大概是这样的:

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

你可以用 & 这个符号来代替 and

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

注意,这样做需要额外加上括号。

撰写回答