朱莉娅的负数/补数索引,如R

时间:2018-09-18 02:29:38

标签: arrays indexing julia

Julia中是否有与R的负索引相似的功能?在R中,代码类似于:

x = 1:10
inds = c(1, 5, 7)
x[-inds]

[1]  2  3  4  6  8  9 10

我发现这在很多情况下都非常有用,尤其是对于诸如创建一个测试/训练集的采样索引之类的事情,还可以对数组进行子索引以排除某些行。所以我希望Julia中有一些简单的事情可以做到这一点。

2 个答案:

答案 0 :(得分:3)

这不是基本语言的功能,但例如,请参见以下软件包:https://github.com/mbauman/InvertedIndices.jl

答案 1 :(得分:2)

这类似于@Colin T Bower的答案,并且仅使用基本Julia。害怕它不如您的R示例优雅。

julia> minus(indx, x) = setdiff(1:length(x), indx)
minus (generic function with 1 method)

julia> x = collect(1:10)
10-element Array{Int64,1}:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10

julia> inds = [1, 5, 7]
3-element Array{Int64,1}:
 1
 5
 7

julia> x[minus(inds, x)]
7-element Array{Int64,1}:
  2
  3
  4
  6
  8
  9
 10