Julia中是否有一个函数可以为您提供数组数组(或“锯齿数组”)中元素的总数?
这是我的意思:
my_array_of_arrays = [ [1, 5], [6], [10, 10, 11] ]
我正在寻找一个desired_function(my_array_of_arrays)
将返回6
如果不是,在Julia中最快的方法是什么?
提前感谢!
没有其他依赖项的一种方法是使用mapreduce
:
mapreduce
但是,如果您想更深入地处理参差不齐的数组,最好使用专用的程序包,例如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> mapreduce(length, +, my_array_of_arrays)
6
。
@ MattB建议的ArraysOfArrays.jl
是一个更优雅的答案,应该在这里,以便其他人可以找到它。
测试:
ArraysOfArrays.jl
请注意,两种方法sum(length, x)
和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
的性能相同,因为两者均未实现数据。