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)
两种方法的性能是相同的,因为它们都没有具体化数据。
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)
两种方法的性能是相同的,因为它们都没有具体化数据。