arrays - Julia 截断数组数组的内部维度

标签 arrays multidimensional-array julia

给定一个数组数组

x = [[1, 2, 3, 4], [4, 5, 6, 7]],

什么是截断每个内部数组的简洁有效的方法,以便我最终得到

[[1, 2], [4, 5]]?

有没有像 x[:,1:2] 这样简单的多维数组?

最佳答案

您可以broadcast getindex:

julia> x = [[1, 2, 3, 4], [5, 6, 7, 8]];

julia> getindex.(x, (1:2,))
2-element Array{Array{Int64,1},1}:
 [1, 2]
 [5, 6]

好像比使用map快一点:

julia> foo(xs) = getindex.(xs, (1:2,))
foo (generic function with 1 method)

julia> bar(xs) = map(x -> x[1:2], xs)
bar (generic function with 1 method)

julia> @btime foo($([rand(1000) for _ in 1:1000]));
  55.558 μs (1001 allocations: 101.69 KiB)

julia> @btime bar($([rand(1000) for _ in 1:1000]));
  58.841 μs (1002 allocations: 101.70 KiB)

关于arrays - Julia 截断数组数组的内部维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60106041/

相关文章:

plot - 如何在 Julia 中使用plot()连接点

python - 我们可以在 Julia 中调用整个 python 脚本,而不仅仅是单个函数吗?

tcp - Julia ZMQ - 连接到其他 WebSockets 产生 StateError

javascript - 对多个单元格使用 If 函数

C++ 检查一个 double 是否在另一个 double (+/-) 的 .1 范围内

ruby - 如果指定键的值在数组中相同,如何合并哈希

php - 当我不知道将传递哪个表单名称时,如何将表单值映射到数据库列名称?

c - 段错误 : Dynamic memory allocation for multidimensional array in C

c - 在结构中填充数组字段

ruby-on-rails - Rails 5,用 Postgres 数组替换连接表