

pythonについての質問です。  
全ての要素の値が0である行を削除するにはどのようなコードを書けばよいでしょうか。  
例えば、

[code]

    import numpy as np
    a=np.array([[0,0,0],[1,1,1],[2,2,2],[0,0,0],[3,3,3]])
    
[/code]

とあった場合に、aの一行目と4行目を削除したいです。


CC BY-SA 3.0
2018-04-27T01:48:36.167
43591
2018-04-30T04:51:36.313
2018-04-30T04:51:36.313
3060
28331
question
python python3
pythonで行を削除したいです

[code]

    a[a.any(axis=1), :]
    
[/code]

でよいのではないでしょうか


CC BY-SA 3.0
2018-04-27T02:14:58.687
43593
2018-04-27T02:14:58.687
24801
43591
answer


配列に0が含まれていないか、含まれていた場合も0だけではない 配列をフィルターするようにすると、以下のコードで可能です。

[code]

    import numpy as np
    a=np.array([[0,0,0],[1,1,1],[2,2,2],[0,0,0],[3,3,3],[0,1,2,3]])
    a=filter(lambda x: not 0 in x or len(set(x)) > 1, a)
    
[/code]

出力結果

> [[1, 1, 1], [2, 2, 2], [3, 3, 3], [0, 1, 2, 3]]


CC BY-SA 3.0
2018-04-27T02:25:11.470
43594
2018-04-27T02:33:00.870
2018-04-27T02:33:00.870
24823
24823
43591
answer