0

该文件有 26 列和非常多的行。使用 HDF5 的正确方法是一次读取文件一行,将内容读入 1x26 内存空间,然后将数据集扩展 1x26 并将内存空间内容复制到数据集的新添加行吗?

我不确定这会有多有效,或者即使这是正确的方法,我对此也很陌生。

谢谢。

4

1 回答 1

1

答案很大程度上取决于您的确切用例。按照您建议的方式做这件事当然没有,但可能有更有效/更快的方法来做。通常,您会希望调整块的大小以适应如何读取/写入数据。

如果您提前大致知道行数,则使用相对较大的块进行压缩可能会快得多。例如,如果您知道您可能有 1000 到 2000 行之间的某处,则使用具有 100 行的块并启用压缩。这将导致 IO 操作比一次单行少得多。

另一方面,如果数据集可能会随时间增长,一次一行,那么您的方式可能会更好。

另一个考虑因素是您将如何读取数据。如果您一次只读取一行,那么 1x26 块将是一个好主意。但是,如果您打算一次读取整个数据集并且只读取几次,请使用更大的块。

于 2013-06-19T06:43:59.043 回答