gpt4 book ai didi

julia - 将 NamedTuple 数组转换为 Julia 中的数组

转载 作者:行者123 更新时间:2023-12-05 03:44:13 25 4
gpt4 key购买 nike

我有一个 NamedTuple 数组,我从 Julia 中的一个 hdf5 文件中读出。它有名称 X、Y 和 Z。有没有一种简洁的方法可以将其转换为分别包含 X、Y 和 Z 值的三个数组?

typeof(science_h5["/Nav/Position"][:])

Array{NamedTuple{(:X, :Y, :Z),Tuple{Float32,Float32,Float32}},1}

最佳答案

您可以使用 Tables.jl 中的 Tables.columntable:

julia> a = [(X=i, Y=i+1, Z=i+2) for i in 1:5]
5-element Vector{NamedTuple{(:X, :Y, :Z), Tuple{Int64, Int64, Int64}}}:
(X = 1, Y = 2, Z = 3)
(X = 2, Y = 3, Z = 4)
(X = 3, Y = 4, Z = 5)
(X = 4, Y = 5, Z = 6)
(X = 5, Y = 6, Z = 7)

julia> Tables.columntable(a)
(X = [1, 2, 3, 4, 5], Y = [2, 3, 4, 5, 6], Z = [3, 4, 5, 6, 7])

如果你只想使用 Julia Base,你可以这样做:

julia> X, Y, Z = [getindex.(a, i) for i in 1:3]
3-element Vector{Vector{Int64}}:
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
[3, 4, 5, 6, 7]

julia> X, Y, Z = [getproperty.(a, i) for i in (:X, :Y, :Z)]
3-element Vector{Vector{Int64}}:
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
[3, 4, 5, 6, 7]

关于julia - 将 NamedTuple 数组转换为 Julia 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66592666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com