我有一个大矩阵,我想检查它里面有一列全零。怎么做numpy?
答案 0 :(得分: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
如果您以后决定需要列索引:
In [26]: numpy.where(~a.any(axis=0))[0]
Out[26]: array([2])
答案 1 :(得分:4)
创建equals 0
掩码(mat == 0
),并沿轴运行all
。
(mat == 0).all(axis=0).any()