Julia:计算数组数组中的元素总数

Julia: counting total number of elements in an array-of-arrays

Julia 中是否有一个函数可以为您提供数组数组(或 'jagged array')中的元素总数?

我的意思是:

my_array_of_arrays = [ [1, 5], [6], [10, 10, 11] ] 

我正在寻找这样的函数 desired_function(my_array_of_arrays) 将 return 6

如果没有,在 Julia 中执行此操作的最快方法是什么?

提前致谢!

一种无需额外依赖项的方法是使用 sum:

julia> my_array_of_arrays = [ [1, 5], [6], [10, 10, 11] ] 
3-element Array{Array{Int64,1},1}:
 [1, 5]
 [6]
 [10, 10, 11]

julia> sum(length, my_array_of_arrays)
6


但是,如果您想更深入地处理参差不齐的数组,最好使用专门的软件包,例如 ArraysOfArrays.jl

sum(length, x) @MattB 建议的是一个更优雅的答案,它值得在这里,以便其他人可以找到它。

测试:

julia> my_array_of_arrays = [ [1, 5], [6], [10, 10, 11] ]
3-element Array{Array{Int64,1},1}:
 [1, 5]
 [6]
 [10, 10, 11]

julia> sum(length, my_array_of_arrays)
6

请注意,mapreduce(length, +, x)sum(length, x) 两种方法的性能是相同的,因为它们都没有具体化数据。