Python numpy尝试读取多列二进制文件

Python numpy尝试读取多列二进制文件,python,numpy,binary,Python,Numpy,Binary,我有一个numpy文件,我想从一个文件中读取3列独立的数据。我通过三个单独的数组创建了数据,其中data1=浮点,data2=data3=字符串。数据的保存方式如下: 保存(infofile[data1,data2,data3]) 我可以通过以下命令读取文件并加载数据: data1, data2, data3 = np.load(infofile) 其中,data1是浮点值,data2和data3是字符串。每行约1000行长。当我试图查看数据时,我得到: print(data1[0]) b'0

我有一个numpy文件,我想从一个文件中读取3列独立的数据。我通过三个单独的数组创建了数据,其中data1=浮点,data2=data3=字符串。数据的保存方式如下:

保存(infofile[data1,data2,data3])

我可以通过以下命令读取文件并加载数据:

data1, data2, data3 = np.load(infofile)
其中,data1是浮点值,data2和data3是字符串。每行约1000行长。当我试图查看数据时,我得到:

print(data1[0])
b'0.0'
print(data2[0])
b'10000'
print(data3[0])
b'20190831.230000'
我知道数据是二进制的,那么如何从所有数据中删除前面的“b”,使其看起来像:

print(data1[0])
0.0
print(data2[0])
'10000'
print(data3[0])
'20190831.230000'

解决方案是对数据进行解码。utf-8是一种常见的编码,但如果使用了另一种编码,请使用该编码对数据进行解码

print(data1[0].decode("utf-8"))
将提供:

'0.0'
对于列表中的每个元素:

data1 = [float(item.decode("utf-8")) for item in data1]
data2 = [item.decode("utf-8") for item in data2]
data3 = [item.decode("utf-8") for item in data3]

它将解码列表中的每个元素,对于data1,它将把元素解析为浮点数。

解决方案是解码数据。utf-8是一种常见的编码,但如果使用了另一种编码,请使用该编码对数据进行解码

print(data1[0].decode("utf-8"))
将提供:

'0.0'
对于列表中的每个元素:

data1 = [float(item.decode("utf-8")) for item in data1]
data2 = [item.decode("utf-8") for item in data2]
data3 = [item.decode("utf-8") for item in data3]

它将解码列表中的每个元素,对于data1,它将把元素解析为浮点数。

文件来自何处,是如何创建的?它似乎只包含三行二进制字符串(不是浮点数据)。
b''
前缀表示Python3
bytes
对象。该文件来自何处,是如何创建的?它似乎只包含三行二进制字符串(不是浮点数据)。
b''
前缀表示Python3
bytes
对象;但是他们写了“其中data1是一个浮点值,data2和data3是字符串”,所以如果他们真的需要浮点数据,那么这里有更深层次的错误,所以这给了我0.0,而不是我想要的“0.0”。有没有一种方法可以在一个命令中解码整个数组?如果您打印它,它将为您提供0.0,但它仍然是一个字符串,或者不是?它确实是类“str”。之后我需要转换成浮点;但是他们写了“其中data1是一个浮点值,data2和data3是字符串”,所以如果他们真的需要浮点数据,那么这里有更深层次的错误,所以这给了我0.0,而不是我想要的“0.0”。有没有一种方法可以在一个命令中解码整个数组?如果您打印它,它将为您提供0.0,但它仍然是一个字符串,或者不是?它确实是类“str”。之后我需要转换成浮点。