删除二维矩阵中的全零行

1 投票
2 回答
7487 浏览
提问于 2025-04-18 17:27

有没有什么简单又有效的方法,可以把一个二维数组中所有全是零的行去掉?我在看numpy的文档,但没找到相关的内容。

2 个回答

-1

你可以使用内置的函数 numpy.nonzero

http://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html

4

布尔索引可以解决这个问题:

In [2]:

a
Out[2]:
array([[4, 1, 1, 2, 0, 4],
       [3, 4, 3, 1, 4, 4],
       [1, 4, 3, 1, 0, 0],
       [0, 4, 4, 0, 4, 3],
       [0, 0, 0, 0, 0, 0]])
In [3]:

a[~(a==0).all(1)]
Out[3]:
array([[4, 1, 1, 2, 0, 4],
       [3, 4, 3, 1, 4, 4],
       [1, 4, 3, 1, 0, 0],
       [0, 4, 4, 0, 4, 3]])

撰写回答