#save #julia #load
Вопрос:
Существует ли стандартный способ легко сохранять любые данные в Julia? На этот раз у меня есть кортеж с двумя массивами, который я хочу использовать позже. Что-то вроде этого.
a = [1,2,34]
b = [1,2,3,4,5]
save((a,b), "ab")
a, b = load("ab")
Ответ №1:
Вы можете использовать JLD2.jl для сохранения и загрузки произвольных объектов Julia. Это, скорее всего, будет работать для долгосрочного хранения в разных версиях Julia, чем стандартная библиотека сериализации.
using JLD2
x = (1, "a")
save_object("mytuple.jld2", x)
julia> load_object("mytuple.jld2")
(1, "a")
Для получения дополнительной функциональности ознакомьтесь с документами.
Ответ №2:
Существует множество сценариев в зависимости от того, как долго вы хотите хранить данные
- Сериализация (это идеально подходит для коротких периодов времени, для более длительных периодов, когда пакеты обновляют свои внутренние структуры данных, у вас могут возникнуть проблемы с чтением файла)
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
в себя для сохранения фреймов данных и BSON.jl
для двоичных файлов JSON.