如何将列表从 Python 转移到 Julia?

How to transfer list from Python to Julia?

在 Python 中,我创建了一个 3d 数据列表,我想在 Julia 中访问它。我想知道如何方便地做到这一点。如果通过写入文本文件来做,如何从 julia 解析它?或者也许有专门的解决方案,例如 feather for dataframes?

例如,在python中:

a = [[[0, 1]], [[1, 0.5], [2, 0.5]]]
save_to_convenient_for_parsing_file(a, filename)

朱莉娅:

a = read_from_convenient_for_parsing_file(filename)
a
>2-element Vector{Vector{Vector{Float64}}}:
 [[0.0, 1.0]]
 [[1.0, 0.5], [2.0, 0.5]]

在那个例子中,save_to_convenient_for_parsing_fileread_from_convenient_for_parsing_file 应该是什么样子?

在 Python 中存储对象的最自然方法之一是 pickle,它在 Julia 中受支持:

import pickle
with open("a.pkl","wb") as f:
    pickle.dump(a,f)

现在您可以:

julia> using Pickle

julia> Pickle.load("a.pkl")
2-element Vector{Any}:
 Any[Any[0, 1]]
 Any[Any[1, 0.5], Any[2, 0.5]]

请注意,Python 列表的等价物是 Any 值的 Julia 向量,因为 Python 中的列表未键入。

更通用的格式是 BSON:

import bson
with open("a.bson","wb") as f:
   f.write(bson.dumps({"a":a}))
julia> using BSON

julia> BSON.load("a.bson")
Dict{Symbol, Any} with 1 entry:
  :a => Any[Any[Any[0, 1]], Any[Any[1, 0.5], Any[2, 0.5]]]