gpt4 book ai didi

hdf5 - 将几个 hdf5 文件合并到一个 pytable 中

转载 作者:行者123 更新时间:2023-12-03 21:37:35 27 4
gpt4 key购买 nike

我有好几个 hdf5文件,每个文件都具有相同的结构。我想创建一个 pytable通过以某种方式合并 hdf5文件。

我的意思是,如果文件 1 中的数组大小为 x,文件 2 中的数组大小为 y,则 pytable 中的结果数组大小为 x+y,首先包含 file1 中的所有条目,然后包含 file2 中的所有条目。

最佳答案

您希望如何执行此操作取决于您拥有的数据类型。数组和 CArray 具有静态大小,因此您需要预先分配数据空间。因此,您将执行以下操作:

import tables as tb
file1 = tb.open_file('/path/to/file1', 'r')
file2 = tb.open_file('/path/to/file2', 'r')
file3 = tb.open_file('/path/to/file3', 'r')
x = file1.root.x
y = file2.root.y

z = file3.create_array('/', 'z', atom=x.atom, shape=(x.nrows + y.nrows,))
z[:x.nrows] = x[:]
z[x.nrows:] = y[:]
但是,EArrays 和 Tables 是可扩展的。因此,您不需要预先分配大小,而是可以使用 copy_node() 和 append() 代替。
import tables as tb
file1 = tb.open_file('/path/to/file1', 'r')
file2 = tb.open_file('/path/to/file2', 'r')
file3 = tb.open_file('/path/to/file3', 'r')
x = file1.root.x
y = file2.root.y

z = file1.copy_node('/', name='x', newparent=file3.root, newname='z')
z.append(y)

关于hdf5 - 将几个 hdf5 文件合并到一个 pytable 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19116917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com