在 Julia vec
将多维数组 reshape 为一维数组。
但是它不适用于数组数组或元组数组。
使用数组理解的一部分,是否有另一种方法来展平数组/元组的数组?还是数组数组/数组元组/元组?或者 ...
最佳答案
Iterators.flatten(x)
创建一个迭代 x
的每个元素的生成器.它可以处理您描述的一些案例,例如
julia> collect(Iterators.flatten([(1,2,3),[4,5],6]))
6-element Array{Any,1}:
1
2
3
4
5
6
如果您有由数组和元组组成的数组,您可能应该重新考虑您的数据结构,因为它听起来类型不稳定。但是,您可以多次调用
flatten
,例如julia> collect(Iterators.flatten([(1,2,[3,3,3,3]),[4,5],6]))
6-element Array{Any,1}:
1
2
[3, 3, 3, 3]
4
5
6
julia> collect(Iterators.flatten(Iterators.flatten([(1,2,[3,3,3,3]),[4,5],6])))
9-element Array{Any,1}:
1
2
3
3
3
3
4
5
6
请注意我的所有示例如何返回
Array{Any,1}
.这对性能来说是一个坏信号,因为这意味着编译器无法确定输出数组元素的单一具体类型。我选择这些示例是因为我阅读您的问题的方式听起来您可能已经输入了不稳定的容器。
关于arrays - Julia:扁平化数组/元组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47021821/