2025年Julia - HDF5、JLD2库、group、dataset

Julia - HDF5、JLD2库、group、datasetJLD2 库中 group 和 dataset 是什么样的安排 取决于读 写的细节 一 准备 h5 材料 using H5JL using DelimitedFil using JLD2 csv file C Users songroom Desktop 000001 XSHE csv jld file

大家好,我是讯享网,很高兴认识大家。

JLD2库中,group和dataset是什么样的安排,取决于读、写的细节。

一、准备h5材料

using H5JL; using DelimitedFiles; using JLD2; csv_file = "C:\\Users\\songroom\\Desktop\\000001.XSHE.csv"; jld_file = "C:\\Users\\songroom\\Desktop\\000001.h5"; # readdlm header=true,=>tuple @time csv_data,~ = DelimitedFiles.readdlm(csv_file,',',header =true); # @time :6.5 seconds new_csv = H5JL.drop_array_null(csv_data); #不用管,去空格的 # 从csv=>h5_array h5_data = H5JL.get_h5_array_from_csv_by_fullcode(new_csv,"000001.XSHG"); println("h5_data::$(size(h5_data))") #@time h5_data = turn_larger(h5_data,20) group_dataset_name1 = "1000.XSHG/000001.XSHG"; group_dataset_name2 = "1000.XSHG/000002.XSHG"; # write @time H5JL.write_h5_data(jld_file,h5_data,group_dataset_name1) # 4.13s @time H5JL.write_h5_data(jld_file,h5_data,group_dataset_name2) # 4.13s 

讯享网

好了,我们就生成了一个.h5文件。

二、测试JLD2的h5结构

讯享网jld_file = "C:\\Users\\songroom\\Desktop\\000001.h5"; if isfile(jld_file) f = JLD2.jldopen(jld_file, "r+")# "r+"; else f = JLD2.jldopen(jld_file, "w")# "r"; "w"=>覆盖了 end 

1、判断文件中的基本属性

julia> isempty(f) false julia> f.writable #文件是否可“写” true julia> f.written true julia> f.compress false julia> f.mmaparrays false julia> f.n_times_opened 1 

2、group名字

讯享网julia> keys(f.root_group) 1-element Array{String,1}: "1000.XSHG" 

3、创建新group

julia> JLD2.Group(f, "1001.XSHG") JLD2.Group (no datasets) 

4、dataset名字


讯享网

讯享网julia> datasets = keys(f["1000.XSHG"]) 2-element Array{String,1}: "000001.XSHG" "000002.XSHG" 

5、dataset取值

julia> f["1000.XSHG"]["000002.XSHG"] ×3 Array{Float64,2}: 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋮ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
讯享网julia> JLD2.Group(f, "1000.XSHG/000003")# no datasets是指下面没有dataset JLD2.Group (no datasets) julia> keys(f.root_group) 1-element Array{String,1}: "1000.XSHG" julia> keys(f["1000.XSHG"]) 3-element Array{String,1}: "000001.XSHG" "000002.XSHG" "000003" 
julia> f["1000.XSHG/000004"] =4 4 julia> keys(f["1000.XSHG"]) # 查看dataset已经变化 4-element Array{String,1}: "000001.XSHG" "000002.XSHG" "000004" "000003" 

注意:但不能在原有的基础进行修改!

讯享网julia> f["1000.XSHG/000004"] =5 ERROR: ArgumentError: a group or dataset named 000004 is already present within this group 

(3)另一个创建:要求是新的group!

 julia> JLD2.Group(f, "0004.XSHG")["stock1"] = 600 600 

在这里插入图片描述这个就说明,目前阶段,dataset不能重新赋值。如果需要重新赋值,则应先把其中的数据备份下来,删除原文件,再新建!

8、keys

讯享网dataset1 = "1000.XSHG/000001.XSHG" dataset2 = "1000.XSHG/000002.XSHG" dataset3 = "1001.XSHG" haskey(f.root_group, dataset1) haskey(f.root_group, dataset2) haskey(f.root_group, dataset3) 
小讯
上一篇 2025-01-16 16:58
下一篇 2025-04-08 21:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/123407.html