HDF5:存储NumPy数据

ill*_*ant 2 c python numpy hdf5 pytables

当我使用NumPy时,我以原生格式*.npy存储了它的数据.它非常快,给了我一些好处,比如这个

  • 我可以从C代码中读取*.npy作为简单的二进制数据(我的意思是*.npy与C结构是二进制兼容的)

现在我正在处理HDF5(PyTables此刻).正如我在教程中看到的,他们使用NumPy序列化程序来存储NumPy数据,所以我可以从简单的*.npy文件中读取C中的这些数据?

HDF5的numpy是否与C结构兼容?

UPD:

我从hdf5读取matlab客户端,但是不想从C++读取hdf5因为从*.npy读取二进制数据的速度要快一些,所以我真的需要从C++读取hdf5(二进制兼容性)所以我是已经使用两种方式传输数据 - *.npy(从C++读取为字节,从本地Python读取)和hdf5(从Matlab访问)如果可能的话,想要使用唯一的方法 - hdf5,但要做到这一点,我有找到一种方法使hdf5二进制兼容C++结构,请帮助,如果有一些方法来关闭hdf5中的压缩或其他什么来使hdf5二进制兼容C++结构 - 告诉我在哪里可以阅读它...

Dav*_*veP 9

从C读取hdf5文件的正确方法是使用hdf5 API - 请参阅本教程.原则上,可以直接从hdf5文件中读取原始数据,就像使用.npy文件一样,假设您没有在hdf5文件中使用高级存储选项,例如压缩.然而,这基本上无视使用hdf5格式的全部意义,我不能想到这样做的任何优势,而不是使用正确的hdf5 API.另请注意,API有一个简化的高级版本,这应该使得从C读取相对轻松.