具有多个范围的索引数组

pic*_*ick 5 arrays julia

julia数组是否支持具有多个范围的索引,如下所示

dat = Array(1:10)
# trying to get dat[[1:3, 6:8]] to result in
dat[[1,2,3,6,7,8]]
Run Code Online (Sandbox Code Playgroud)

寻找像R等价的东西dat[c(1:3, 6:8)]

Dav*_*ers 9

R版本的直接等价物是

v = 1:10
v[ [1:3; 6:8] ]
Run Code Online (Sandbox Code Playgroud)

因为;是连接运算符:

julia> [1:3; 6:8]
6-element Array{Int64,1}:
 1
 2
 3
 6
 7
 8
Run Code Online (Sandbox Code Playgroud)

您可能还想查看chainIterators.jl包:https://github.com/JuliaLang/Iterators.jl

  • `Iterators.chain`返回一个可迭代的,而不是一个可索引的数组类型,因此你将无法将它用作索引.注册了一些惰性连接库,但我没有尝试过任何它们(VirtualArrays,CatViews).但是,在这种情况下,如果这些懒惰类型更快,我会非常惊讶.分配非常便宜,但索引到延迟连接需要索引搜索或hashmap或其他类似的东西. (2认同)