python - numpy 尝试读取多列二进制文件
问题描述
我有一个 numpy 文件,我想从一个文件中读取 3 个单独的数据列。我通过三个单独的数组创建数据,其中 data1 = 浮点数,data2 = data3 = string。数据保存如下:
np.save(信息文件,[data1,data2,data3])
我可以使用以下命令读取文件并加载数据:
data1, data2, data3 = np.load(infofile)
其中 data1 将是一个浮点值,而 data2 和 data3 是字符串。每个将有约 1,000 行长。当我尝试查看数据时,我得到:
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,它将元素解析为浮点数。
推荐阅读
- swift - 如何从swift5中的图像中获取斑马线数
- r - 在数组中查找大于 R 中另一列的最小值
- vue.js - 如何禁用 Vue 上的按钮?
- html - 如何将悬停的重置延迟到过渡完成后?
- python - Elasticsearch - cross_fields 嵌套字段
- sql - 如何将 BigQuery SQL 结果中的列类型从 NULLABLE 转换为 REQUIRED?
- python - 如何在 django 内联管理中禁用内联标签?
- web-scraping - Cheeriojs 除了 document.getElementsByClassName 什么都不返回
- javascript - 添加“返回”按钮以羽毛笔气泡输入(例如链接)
- python - 我正在尝试制作一个乘法表,但是如何并排打印输出?