将二进制文件读取到numpy数组时出错



我正在尝试将.bin文件中的值插入到数组中。然而,在第一行,我得到了错误消息:

ValueError: could not convert string to float: b'x00x00x00x00xddxb9xa8tLvx1exc0x9bxd0Cxb0n'

这是代码:

import os 
import numpy as np
def readdata():
filename1 = "data.bin"
f1 = open (filename1,'rb')
f1stat = os.stat(filename1)
count = f1stat.st_size
data = np.zeros((5,count), dtype= np.float)
for i in range(5):
for j in range(count):
data[i][j] = f1.readline()

实际上,您可以使用np.fromfile将二进制文件直接读取到numpy数组中,并将数据类型设置为以位为单位的整数的长度,例如uint32

f1 = open(filename1,'rb')
data = np.fromfile(f1, dtype=np.uint32)

你可以在这里阅读更多