У меня есть двоичный файл, который я хочу прочитать с помощью подпрограммы Python. Для этого создается объект dtype, который описывает, как выглядят данные. Объект dtype, который должен быть создан, представляет собой словарь в форме {'field1': ..., 'field2': ..., ...}. obj тогда является кортежем (тип данных, смещение) - (см. документация numpy ). Ошибка теперь возникает, если смещение превышает диапазон C int во время создания dtype.
Минимальный пример для воспроизведения ошибки:
dict_tmp = dict()
offset = 2281832888
dict_tmp['/timedisc/pressure'] = ('(4096, 4096)>f8', offset)
dtype = np.dtype(dict_tmp)
ValueError: целое число не помещается в C int
Если я уменьшу смещение ниже диапазона 32-битного целого числа, ошибка, конечно, исчезнет. Я уже пытался привести значение смещения к int64 или uint32 вручную, но это также не работало. Насколько я вижу, dtype является частью multiarray в numpy, и в этот момент я немного растерялся.
Есть ли возможность загрузить данные и обойти ошибку?