将 Julia 嵌套列表转换为多维数组
Converting Julia nested list to multidimensional array
给定一个 Julia 列表:
data = [[1,2],[4,5]]
的类型为 Vector{Int64}
,如何将其转换为二维数据类型(例如 2×2 Matrix{Int64}
)以便我可以像 data[:,2]
一样对其进行索引?我尝试了 hcat
或 vcat
但无法获得我想要的结果。提前致谢!
您可以使用 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
给定一个 Julia 列表:
data = [[1,2],[4,5]]
的类型为 Vector{Int64}
,如何将其转换为二维数据类型(例如 2×2 Matrix{Int64}
)以便我可以像 data[:,2]
一样对其进行索引?我尝试了 hcat
或 vcat
但无法获得我想要的结果。提前致谢!
您可以使用 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