在 Julia 中保存数据
Save data in Julia
是否有一种标准方法可以轻松地在 Julia 中保存任何类型的数据。这次我有一个包含两个数组的元组,稍后我想再次使用它。像这样。
a = [1,2,34]
b = [1,2,3,4,5]
save((a,b), "ab")
a, b = load("ab")
有很多场景,具体取决于您要将数据存储多长时间
- 序列化(这对于短时间段来说是完美的,对于较长时间段的包更新其内部数据结构,您可能无法读取文件)
julia> using Serialization
julia> serialize("file.dat",a)
24
julia> deserialize("file.dat")
3-element Vector{Int64}:
1
2
34
- 带分隔符的文件(请注意,可能需要对输出进行额外处理)
julia> using DelimitedFiles
julia> writedlm("file.csv", a)
julia> readdlm("file.csv", '\t' ,Int)
3×1 Matrix{Int64}:
1
2
34
- JSON(适合长期使用)
julia> using JSON3
julia> JSON3.write("file.json",a)
"file.json"
julia> open("file.json") do f; JSON3.read(f,Vector{Int}); end
3-element Vector{Int64}:
1
2
34
其他值得一提的库(取决于数据格式)包括用于保存数据帧的 CSV.jl
和用于二进制 JSON 文件的 BSON.jl
。
您可以使用 JLD2.jl to save and load arbitrary Julia objects. This is more likely to work for long term storage across different Julia versions than the Serialization 标准库。
using JLD2
x = (1, "a")
save_object("mytuple.jld2", x)
julia> load_object("mytuple.jld2")
(1, "a")
有关其他功能,请查看 docs。
是否有一种标准方法可以轻松地在 Julia 中保存任何类型的数据。这次我有一个包含两个数组的元组,稍后我想再次使用它。像这样。
a = [1,2,34]
b = [1,2,3,4,5]
save((a,b), "ab")
a, b = load("ab")
有很多场景,具体取决于您要将数据存储多长时间
- 序列化(这对于短时间段来说是完美的,对于较长时间段的包更新其内部数据结构,您可能无法读取文件)
julia> using Serialization
julia> serialize("file.dat",a)
24
julia> deserialize("file.dat")
3-element Vector{Int64}:
1
2
34
- 带分隔符的文件(请注意,可能需要对输出进行额外处理)
julia> using DelimitedFiles
julia> writedlm("file.csv", a)
julia> readdlm("file.csv", '\t' ,Int)
3×1 Matrix{Int64}:
1
2
34
- JSON(适合长期使用)
julia> using JSON3
julia> JSON3.write("file.json",a)
"file.json"
julia> open("file.json") do f; JSON3.read(f,Vector{Int}); end
3-element Vector{Int64}:
1
2
34
其他值得一提的库(取决于数据格式)包括用于保存数据帧的 CSV.jl
和用于二进制 JSON 文件的 BSON.jl
。
您可以使用 JLD2.jl to save and load arbitrary Julia objects. This is more likely to work for long term storage across different Julia versions than the Serialization 标准库。
using JLD2
x = (1, "a")
save_object("mytuple.jld2", x)
julia> load_object("mytuple.jld2")
(1, "a")
有关其他功能,请查看 docs。