首页 > 解决方案 > 删除 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

有谁知道该怎么做?

问候,

标签: julia

解决方案


a为数组,然后

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

作品。 mapslices减少a到一个 1x40 的布尔矩阵,表示非零列,我们需要将其转换为 aVector以进行索引,因此vec(或者,可以dropdims)。

根据您的应用程序,视图而不是副本可能就足够了。


推荐阅读