Я хотел бы представить описание этого вопроса, сказав, что у меня нет кода, который может воспроизвести мою ошибку. Однако я могу (надеюсь) подробно объяснить проблему.
В своей работе мы имеем дело с большими объемами данных, которые поступают из различных источников. Некоторые из этих источников используют Big Endian, а некоторые используют Small Endian. Все эти данные анализируются и сохраняются в файле h5.
Инструменты, которые я разрабатываю, используют кадры данных Pandas для различных манипуляций с данными.
Наши файлы H5 настроены вспособ, который, кажется, не работает с регулярным вызовом функции Pandas df.read_h5 () (данные не всегда имеют хорошую структуру, даже внутри файла h5). У нас есть различные функции, которые обрабатывают все сценарии, с которыми мы столкнулись, чтобы извлечь данные из файла h5. Большая часть наших данных хранится в файле h5 в виде единичных структурированных массивов или фрагментов структурированных массивов.
По существу, с Pandas возникают некоторые проблемы, когда я беру данные и пытаюсь поместить их в кадр данных. Выдается сообщение об ошибке: « ValueError: Буфер с прямым порядком байтов не поддерживается компилятором с прямым порядком байтов ». Я знаю, как это исправить, просто вызовите замену байтов в базовом массиве numpy, прежде чем поместить его в фрейм данных. Вот как я сейчас решаю эту проблему, но мне было интересно, есть ли способ прочитать данные из h5py в машинный порядок байтов, чтобы мне не пришлось беспокоиться о выполнении смены байтов.
Любые предложения будут полезны.