如何检查矩阵是否包含零列?

sia*_*mii 6 python numpy

我有一个大矩阵,我想检查它中有一列全零.如何在numpy中做到这一点?

War*_*ser 12

这是一种方式:

In [19]: a
Out[19]: 
array([[9, 4, 0, 0, 7, 2, 0, 4, 0, 1, 2],
       [0, 2, 0, 0, 0, 7, 6, 0, 6, 2, 0],
       [6, 8, 0, 4, 0, 6, 2, 0, 8, 0, 3],
       [5, 4, 0, 0, 0, 0, 0, 0, 0, 3, 8]])

In [20]: (~a.any(axis=0)).any()
Out[20]: True
Run Code Online (Sandbox Code Playgroud)

如果您以后决定需要列索引:

In [26]: numpy.where(~a.any(axis=0))[0]
Out[26]: array([2])
Run Code Online (Sandbox Code Playgroud)


shx*_*hx2 4

创建一个equals 0遮罩 ( mat == 0),并all沿轴在其上运行。

(mat == 0).all(axis=0).any()
Run Code Online (Sandbox Code Playgroud)