Python: Как эффективно преобразовать байты в целочисленные массивы? - PullRequest
3 голосов
/ 26 апреля 2020

Я прочитал двоичный файл с диска. Который выдает байтовую переменную, например

arr = open(file, "rb").read()

Теперь arr структурирован таким образом, что каждый 4-байтовый код образует 32-битное целое число (little-endian). Я вижу, что есть функция int.from_bytes для преобразования байтов в int, но она слишком медленная.

Есть ли функция для преобразования байтов в целочисленный массив? Numpy решения приветствуются.

В отличие от этого, кажется, что это легко сделать в R и Джулии, например,

В R

readBin(arr, what="integer", n=length(arr)/4)

В Юлии

reinterpret(Int32, arr)

1 Ответ

1 голос
/ 26 апреля 2020

На основании ответа @Tim Peter это

b = array.array("i")
b.frombytes(arr)

Теперь b - это массив целых чисел.

См. Документацию здесь https://docs.python.org/3/library/array.html#module -array

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