NumPy неверно считывает двоичные данные? - PullRequest
0 голосов
/ 05 октября 2019

Я работаю с двоичным файлом "uint64.bin", все содержимое которого можно представить в виде: 0x0f2d1e6002df9000

Мой код Python выглядит следующим образом:

import numpy as np
import pandas as pd

my_dtype = np.dtype([('mytag','>u8')])
with open("uint64.bin", 'rb') as fh:
    data = np.fromfile(file=fh, dtype=my_dtype)
df = pd.DataFrame(data, columns=data.dtype.names)
print(df.get_values()[0])

Что печатает1093563682234798080, тогда как на выходе должно быть 1093563682234798100 (разница в битах 0x14). Что происходит?

Я нахожусь на 64-битной Windows и использую Python 3.7.

1 Ответ

1 голос
/ 05 октября 2019

Просто сделайте print(0x0f2d1e6002df9000) в Python. Это дает вам:

1093563682234798080

Таким образом, вы получите правильный ответ, ваше предположение о том, каким оно должно быть, является неправильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...