我正在处理来自大型模型的信息,这意味着我有很多带有两个浮点列(比如 X 和 Y)的大型 ascii 文件。然而,每当我必须读取这些文件时都需要很长时间,所以我想也许将它们转换为二进制文件会使读取过程更快。
我使用 uu.encode(ascii_file,binary_file) 命令将我的 ascii 文件转换为二进制文件,它运行良好(实际上,测试了解码部分,我恢复了相同的文件)。
我的问题是:有没有办法直接将二进制文件读入 python 并将数据放入两个变量(x 和 y)?
谢谢!
您没有指定 float 列在 Python 中的表示方式。 cPickle
模块是一个快速的通用解决方案,缺点是它创建的文件只能从 Python 读取,并且永远不允许读取不受信任的数据(从网络接收)。它可能只适用于所有常规数据类型,包括 numpy 数组。
如果您可以使用 numpy 并将数据存储在 numpy 数组中,请查看 numpy.save
和 numpy.savetxt
以及相应的加载函数,它们应该会提供更好的性能手动提取数据。
array.array
也有将数组数据写入文件的方法,缺点是数组数据是以 native 格式写入的,无法从不同的体系结构读取。
我是一名优秀的程序员,十分优秀!