美文网首页
numpy去除元素全为零的行或列

numpy去除元素全为零的行或列

作者: SwordIng | 来源:发表于2020-09-23 20:48 被阅读0次
    1. np.all() 所有元素不为零或空或False,返回True
    import numpy as np
    a=np.array([0,1,2,0,3,4,0,5,6,0,0,0,0,0,0]).reshape(5,3)
    #去除全零行
    print(a[[not np.all(a[i] == 0) for i in range(a.shape[0])], :])
    [[0 1 2]
     [0 3 4]
     [0 5 6]]
    #去除全零列
    print(a[:, [not np.all(a[:, i] == 0) for i in range(a.shape[1])]])
    [[1 2]
     [3 4]
     [5 6]
     [0 0]
     [0 0]]
    
    1. 请注意某行或列元素是否存在和为零的情况。
    import numpy as np
    a=np.array([0,1,2,0,3,4,0,5,6,0,0,0,0,0,0]).reshape(5,3)
    
    a
    array([[0, 1, 2],
           [0, 3, 4],
           [0, 5, 6],
           [0, 0, 0],
           [0, 0, 0]])
    
    #去除全零行
    a[a.sum(axis=1)!=0,:]
    array([[0, 1, 2],
           [0, 3, 4],
           [0, 5, 6]])
    
    #去除全零列
    
    a[:,a.sum(axis=0)!=0]
    array([[1, 2],
           [3, 4],
           [5, 6],
           [0, 0],
           [0, 0]])
    

    相关文章

      网友评论

          本文标题:numpy去除元素全为零的行或列

          本文链接:https://www.haomeiwen.com/subject/yltayktx.html