【发布时间】:2012-10-22 19:34:37
【问题描述】:
我对 uint8 数据的表示有疑问。
我有一个保存 uint8 数据的 MATLAB MAT 文件。
MAT 文件正在使用scipy.io.loadmat() 读入 Python,并形成了一个字典。
MAT文件的数据字段对应的数组是从字典中提取出来的。
数组看起来像:
array[[162],[122],...[135],dtype:uint8]
之后,这个数组被保存成txt格式供以后文件读取。
但是,txt文件中的数据是双精度的。例如,uint8 数据162 保存为1.620000000000000000e+02。这不是我想要的,因为它会占用太多内存。
我需要的是source_file.read() 中的每个字节对应一个uint8 数据。
有没有更好的方法来表示 uint8 数据?将 uint8 转换为字符串是可能的,但仍需要 2-3 个字节。
【问题讨论】:
-
你用什么方法保存文件?
-
为什么将数据作为浮点数写入文本文件?
-
@John,我之前使用 'numpy.savetxt()' 来保存数组。
-
@Warren,正如 Dougal 刚刚提到的,默认的 fmt 参数是 '%.18e'。这就是为什么有这么多数字。
标签: python arrays numpy uint usrp