过滤 numpy 数组的 numpy 数组

CFl*_*lux 2 python arrays numpy mask filter

我有一个 np 数组数组,我想删除与条件匹配的所有元素。我想避免for循环以使其更快。

np 数组的形状为 [N,2]。我想删除第一个元素等于零的所有子数组。

[[1,2],
 [0,5], # <--- Remove
 [5,1],
 [0,3], # <--- Remove
 [1,1],
 [0,0], # <--- Remove
 [5,0],
 .....
 [5,5]] 
Run Code Online (Sandbox Code Playgroud)

我希望有一个只需一行代码的解决方案。我只是无法弄清楚这条线。我希望有人能帮助我。

谢谢。

She*_*ore 7

假设arr您的输入数组,请执行以下操作:

arr = arr[arr[:,0] !=0]
Run Code Online (Sandbox Code Playgroud)

这里arr[:,0]对应于第一个元素/列或每个子数组。然后检查arr[:,0] !=0哪个返回第一个元素不等于零的索引。然后这些索引会自动传递给arr您想要的东西。