Когда я использовал NumPy, я сохранил его данные в собственном формате * .npy. Это очень быстро и дал мне некоторые преимущества, как этогоHDF5: сохранение данных NumPy
- я мог читать * .npy из кода C в простых двоичных данных (я имею в виду * .npy является бинарен совместимым со структурами C)
Теперь я имею дело с HDF5 (PyTables в данный момент). Как я читал в учебнике, они используют NumPy serializer для хранения данных NumPy, поэтому я могу читать эти данные из C, как из простых * .npy-файлов?
Нужна ли HDF5 бинарно совместимо с структурами C тоже?
UPD:
У меня есть клиент MatLab чтение из hdf5, но не хочу читать hdf5 от C++, потому что чтение двоичных данных из * .npy в разы быстрее, так что у меня действительно есть необходимость в чтении hdf5 от C++ (двоичная совместимость) Итак, я уже использую два способа переноса данных - * .npy (чтение из C++ в виде байтов из исходного Python) и hdf5 (доступ из Matlab) И если возможно, захотите использовать только один способ - hdf5, но для этого мне нужно найти способ сделать hdf5 двоично-совместимым с структурами C++, справка pls, если есть какой-то способ отключить сжатие в hdf5 или что-то еще, чтобы сделать hdf5 двоично-совместимым с структурами C++ - скажите мне, где я могу прочитать об этом ...
Вы говорите, что вы уже реализовали код на C++ для чтения из hdf5-файлов и обнаружили, что он намного медленнее, чем чтение из .npy-файлов? Кроме того, я уверен, что Matlab может читать необработанные двоичные файлы, поэтому, если это единственная причина для использования hdf5, возможно, вам стоит более внимательно изучить чтение файла .npy в matlab. – DaveP
Нет, я читаю * .npy из C++ как двоичные данные и хочу сделать этот трюк с hdf5. Чтение * .npy из MATLAB кажется очень проблематичным –
HDF5 по умолчанию не имеет сжатия. – Yossarian