将 Julia 嵌套列表转换为多维数组

Converting Julia nested list to multidimensional array

给定一个 Julia 列表:

data = [[1,2],[4,5]]

的类型为 Vector{Int64},如何将其转换为二维数据类型(例如 2×2 Matrix{Int64})以便我可以像 data[:,2] 一样对其进行索引?我尝试了 hcatvcat 但无法获得我想要的结果。提前致谢!

您可以使用 Iterators。有了 Vector 后,只需使用 reshape.

reshape( collect(Iterators.flatten([[1,2],[4,5]])), 2,2 )

2×2 Matrix{Int64}:
 1  4
 2  5

你可以这样做:

julia> reduce(hcat, data)
2×2 Matrix{Int64}:
 1  4
 2  5

hcat 工作正常:

julia> hcat([[1,2],[4,5]]...)
2×2 Matrix{Int64}:
 1  4
 2  5

事实是,向量在 Julia 中是 -向量(例如,与 NumPy 不同),因此您应该h最初与cat使它们得到矩阵。

如果您使用 vcat,您会将它们堆叠在一起,得到一个高矢量:

julia> vcat([[1,2],[4,5]]...)
4-element Vector{Int64}:
 1
 2
 4
 5