julia - 保存数组,HDF5,Julia
问题描述
在这里交叉发布,但是如何使用 HDF5 在 Julia 中保存数组?
在我的特殊情况下,我有一个包含 10,000 个不同长度的数组的数组。我希望 10,000 个数组成为“组”的一部分,但是为每个数组创建新的数据集/组会使读取文件非常慢,所以我正在寻找替代方案。
解决方案
您可以将数组数组展平为一个数组,其中一列包含原始数据,另一列表示该数据最初来自第 i 个数组。
using HDF5
# Define your array of arrays.
arr = [[1,2],[3,4,5]]
# Open your hdf5 file
h5open("data.hdf5", "w") do f
# Create a dataset with the length of all your arrays combined.
N = sum(length.(arr))
d_create(f, "X", Int, ((2,N),(2,-1)), "chunk", (1,1000))
n = 1
for i in 1:length(arr)
m = length(arr[i])
f["X"][1, n:n+m-1] = fill(i, m)
f["X"][2, n:n+m-1] = arr[i]
n+=m
end
print(f["X"][:,:])
end
然后数组存储如下:
> [1 1 2 2 2; 1 2 3 4 5]
推荐阅读
- vb.net - 为 VSTO 插件编写异常
- c - C Program that Removes Comments from a String
- python - 在 Python 中为短语 (bigram,n-gram) 创建词云
- javascript - Vue firebase:无法检索用户数据。不明确的
- python - 如何在不隐式更改列类型的情况下更新 DataFrame?
- python - 检查单词是否对照字典。如果可以通过从字典单词中删除 1 个字符来创建单词,则单词仍在字典中
- angular - 如何解决角度条件下的逻辑错误
- c++ - 在 C++ 中是否有可以访问计时器功能(即启动和结束计时器)的函数?
- ruby-on-rails - ROR – 在访问 URL 时将数据发布到数据库?
- python - 迁移错误,Django 中未找到模块错误