python - 过滤 numpy 数组的 numpy 数组

标签 python arrays numpy filter mask

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

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

[[1,2],
 [0,5], # <--- Remove
 [5,1],
 [0,3], # <--- Remove
 [1,1],
 [0,0], # <--- Remove
 [5,0],
 .....
 [5,5]] 

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

谢谢。

最佳答案

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

arr = arr[arr[:,0] !=0]

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

关于python - 过滤 numpy 数组的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52008764/

相关文章:

java - 如何将二维字符串数组转换为一维字符串数组?

javascript - JSON结果值作为JavaScript/jQuery中的键

python - 替代 scipy.cluster.hierarchy.cut_tree()

python - 在 Python3/Numpy 中过滤数组并返回索引

python - 使用 python 编写 Mercurial 脚本

python - 如何更改三元图的 Axis 刻度顺序?

python - 将 end= 添加到 print() 时,time.sleep 无法按预期工作

arrays - 比较取自工作表范围的 2 个数组时出现 Application.Match 错误

python - 创建一个包含 N 个随机数的列表,其中包含最大值、最小值和总和

python - Psycopg2 不喜欢以小写字母开头的表名