python - 解析通过 fromfile 从二进制文件读取的 numpy 列表

标签 python arrays list numpy binary

我有一个一维整数数组,通过

从二进制读取
data = np.fromfile(file.dat, 'u1')

数据返回的位置

array([242, 255, 101, 0, 124, 0, 86, 0, 33, 0, 
       112, 0, 32, 1, 74, 1, 195, 0, 16, 0], dtype=uint8)

系列中的 0 表示用于高于或低于标准 256 的值的额外位。例如,索引 0 处的 244 应为 -14,并表示为255(或 256) - 242。相反,索引 13 处的值 - 读作 32 实际是 256 + 32,或 288。我试图让上面的数组看起来像 --

[-14, 101, 124, 86, 33, 112, 288, 330, 195, 16]

如果找到值 1 或 255,我想我想要使用索引和值来评估前面的值的东西。

我从下面开始,但最终失去了线索。

for i, a in enumerate(data):
    if a == 255:
       neg = i,a

如果有人可以推荐一种更好的方法来处理二进制值,我也愿意学习。帮助表示赞赏!

最佳答案

您可以观看 '<i2' (< 代表小端,i 代表有符号整数,2 代表 2 字节)

x = np.array([242, 255, 101, 0, 124, 0, 86, 0, 33, 0, 
       112, 0, 32, 1, 74, 1, 195, 0, 16, 0], dtype=np.uint8)

x.view('<i2')
# array([-14, 101, 124,  86,  33, 112, 288, 330, 195,  16], dtype=int16)

或者您可以使用'<i2'直接与 fromfile .

关于python - 解析通过 fromfile 从二进制文件读取的 numpy 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56121484/

相关文章:

python - 使用 python paramiko 将本地字符串写入远程文件

arrays - 在PowerShell中比较两个更大的文本数组

java - 将 Java int[][] 的神秘 bytea 表示形式转换回数组(Hibernate)

c# - 访问对象数组的数组的元素

python - 在 Pandas 中计算 YTD 总数

python - flask 在 cookie 中保存民意调查

python - 为列表条目提供索引

python - 如何检查整数序列是否在列表中

python - 反转字符串中标记的子字符串

list - 如何将字符串列表转换为 Racket 中的字符串?(保持空格不变)