删除Julia数组上的空列

时间:2018-12-08 14:34:56

标签: julia

与Julia一起,我希望删除具有0个值的列。我有一个像下面这样的数组,其中有很多我想删除的空列。

115×40 Array{Float64,2}:
 -0.0  -0.0  -0.0  -0.0  …  -0.0   0.0  -0.0
  0.0  -0.0  -0.0  -0.0      0.0   0.0   0.0
 -0.0  -0.0  -0.0  -0.0     -0.0   0.0  -0.0
  0.0   0.0  -0.0  -0.0     -0.0   0.0   0.0
  0.0   0.0   0.0  -0.0     -0.0   0.0   0.0
 -0.0   1.0  -0.0   0.0  …  -0.0   0.0   0.0
 -0.0  -0.0   0.0  -0.0     -0.0   0.0   0.0
  0.0  -0.0  -0.0  -0.0      0.0   0.0   0.0
  0.0  -0.0   0.0  -0.0     -0.0   0.0   0.0
  ⋮                      ⋱
  0.0   1.0  -0.0  -0.0      0.0  -0.0  -0.0
 -0.0  -0.0   0.0  -0.0      0.0  -0.0  -0.0
  1.0   0.0  -0.0  -0.0      0.0  -0.0   0.0
 -0.0   0.0  -0.0  -0.0  …   0.0  -0.0  -0.0
  0.0   0.0  -0.0   0.0     -0.0  -0.0  -0.0
 -0.0  -0.0  -0.0   0.0     -0.0  -0.0  -0.0
  0.0  -0.0  -0.0   0.0     -0.0   0.0   0.0
 -0.0  -0.0  -0.0  -0.0     -0.0   1.0   0.0

有人知道怎么做吗?

此致

1 个答案:

答案 0 :(得分:2)

a为数组,然后

a[:, vec(mapslices(col -> any(col .!= 0), a, dims = 1))]

有效。 mapslicesa简化为1x40的布尔矩阵,表示非零列,我们需要将其转换为Vector进行索引,因此vec(或者,一个可以dropdims)。

根据您的应用程序,用view代替副本就足够了。