在numpy recarray中删除一行

2 投票
1 回答
1643 浏览
提问于 2025-04-18 08:05

有没有简单的方法可以删除一个包含特定值的行,比如在一个记录数组(recarray)中?假设我有下面这个数组,

a=numpy.array([(1.0, 2.0, 3.0), (4.0, 5.0, 10.0),(1.0,10.0,4.0)], 
dtype=[('A', '<f8'), ('B', '<f8'), ('C', '<f8')])

我想把所有B列中值为10的行都删除掉,这样输出结果就变成了

([(1.0, 2.0, 3.0), (4.0, 5.0, 10.0)], 
dtype=[('A', '<f8'), ('B', '<f8'), ('C', '<f8')])

有没有快速的方法可以做到这一点呢?

1 个回答

3

只需要从原始数组中提取出相关的行:

new_a = a[a["B"]!=10.0]

撰写回答