在Python中加载格式化二进制文件的最有效方法
我的二进制文件大小不超过 20Mb,其中包含标头部分和包含 uchar 序列的数据部分。 我有 Numpy、SciPy 等,每个库都有不同的加载数据的方式。 对于我应该使用的最有效的方法有什么建议吗?
I have binary files no larger than 20Mb in size that have a header section and then a data section containing sequences of uchars. I have Numpy, SciPy, etc. and each library has different ways of loading in the data. Any suggestions for the most efficient methods I should use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 struct 模块,如果性能至关重要,也可以使用用 C 编写的自定义模块。
Use the struct module, or possibly a custom module written in C if performance is critical.
struct 应该适用于标题部分,而 numpy 的 memmap 如果你要操作数据部分会很有效无论如何,它在 numpy 中。 没有必要担心这里的不一致。 两种方法都是兼容的,只需针对每项工作使用正确的工具即可。
struct should work for the header section, while numpy's memmap would be efficient for the data section if you are going to manipulate it in numpy anyways. There's no need to stress out about being inconsistent here. Both methods are compatible, just use the right tool for each job.
bdec 看起来很有前途。
bdec seems promising.
我发现 array.fromfile 是处理同类数据最快的方法。
I found that
array.fromfile
is the fastest methods for homogeneous data.