8

私は大きな行列を持っています。そのどこかにすべてゼロの列があることを確認したいと思います。numpyでそれを行う方法は?

4

2 に答える 2

16

1 つの方法を次に示します。

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 に答える