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)
我希望有一个只需一行代码的解决方案。我只是无法弄清楚这条线。我希望有人能帮助我。
谢谢。
假设arr您的输入数组,请执行以下操作:
arr = arr[arr[:,0] !=0]
Run Code Online (Sandbox Code Playgroud)
这里arr[:,0]对应于第一个元素/列或每个子数组。然后检查arr[:,0] !=0哪个返回第一个元素不等于零的索引。然后这些索引会自动传递给arr您想要的东西。