Python:如何有效地将字节转换为整数数组?

标签 python arrays byte binaryfiles

我已经从磁盘读取了一个二进制文件。它产生一个字节变量,例如

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

现在 arr 的结构使得每个 4 字节形成一个 32 位整数(小端)。我看到有函数 int.from_bytes 可以将 bytes 转换为 int,但它太慢了。

是否有将字节转换为整数数组的函数?欢迎使用 Numpy 解决方案。

相比之下,这在 R 和 Julia 中似乎很容易做到,例如

在 R 中

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

Julia

reinterpret(Int32, arr)

最佳答案

根据@Tim Peter 的回答是

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

现在 b 是一个 int 数组。

请在此处查看文档 https://docs.python.org/3/library/array.html#module-array

关于Python:如何有效地将字节转换为整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61435582/

相关文章:

python - 无法从获得的输出创建数据框

arrays - 如何在 Swift 中使函数的返回类型通用

c# - C# 和 Java 中的十六进制到字节数组给出不同的结果

java - 使用未知参数长度调用未知构造函数

javascript - 如果行的所有元素都不是值(NaN、null、未定义),如何删除数组数组中的行?

java - 如何将两个字节变成 Long? 0x7 + 0x86 = 0x1c000

python-3.x - Python 的字节类型用于什么?

python - 有没有办法将复数转换为纯数?

python - `return` 或 `del` 的类型是什么?

python - MySQL连接器