我有一个大矩阵,我想检查它的某处是否有一列全为零。如何在 numpy 中做到这一点?
问问题
6399 次
2 回答
16
这是一种方法:
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])
于 2013-04-18T20:43:38.960 回答
4
创建一个equals 0
蒙版 ( mat == 0
),并all
在其上沿轴运行。
(mat == 0).all(axis=0).any()
于 2013-04-18T20:43:01.707 回答