【问题标题】:Julia: delete rows and columns from an array or matixJulia:从数组或矩阵中删除行和列
【发布时间】:2019-09-20 18:26:26
【问题描述】:

如何从数组中删除一个或多个行和/或列?

【问题讨论】:

    标签: arrays matrix julia


    【解决方案1】:

    合作:

    julia> array = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
    4×4 Array{Int64,2}:
      1   2   3   4
      5   6   7   8
      9  10  11  12
     13  14  15  16
    

    删除单行(此处为第 2 行):

    julia> newarray = array[1:end .!= 2, :]
    3×4 Array{Int64,2}:
      1   2   3   4
      9  10  11  12
     13  14  15  16
    

    删除单个列(此处为第 3 列):

    julia> newarray = array[:, 1:end .!= 3]
    4×3 Array{Int64,2}:
      1   2   4
      5   6   8
      9  10  12
     13  14  16
    

    删除单行单列(此处为第 2 行、第 3 列):

    julia> newarray = array[1:end .!= 3, 1:end .!= 3]
    3×3 Array{Int64,2}:
      1   2   4
      5   6   8
     13  14  16
    

    删除多行(此处为第 2、4 行):

    julia> newarray = array[setdiff(1:end, (2,4)), :]
    2×4 Array{Int64,2}:
     1   2   3   4
     9  10  11  12
    

    删除多列(此处为第 2、4 列):

    julia> newarray = array[:, setdiff(1:end, (2,4))]
    4×2 Array{Int64,2}:
      1   3
      5   7
      9  11
     13  15
    

    要删除单行多列(此处为第 4 行和第 3、4 列):

    julia> newarray = array[1:end .!= 4, setdiff(1:end, (3,4))]
    3×2 Array{Int64,2}:
     1   2
     5   6
     9  10
    
    # or
    
    julia> newarray = array[setdiff(1:end, 4), setdiff(1:end, (3,4))]
    3×2 Array{Int64,2}:
     1   2
     5   6
     9  10
    
    # or
    julia> newarray = array[setdiff(1:end, (4,)), setdiff(1:end, (3,4))]
    3×2 Array{Int64,2}:
     1   2
     5   6
     9  10
    

    要删除多行和多列(此处为第 1、2 行和第 3、4 列):

    julia> newarray = array[setdiff(1:end, (1,2)), setdiff(1:end, (3,4))]
    2×2 Array{Int64,2}:
      9  10
     13  14
    

    【讨论】:

    • 这不会删除任何内容。而是您创建副本。
    • 确实如此。可以通过将上面的newarray 更改为array 来将数组替换为编辑后的数组。这将创建一个经过编辑的“副本”并发布“原始”。
    • 对于向量,deleteat! 删除后没有任何副本。
    猜你喜欢
    • 2019-07-08
    • 2021-04-30
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多