我有一个很大的整数数组,我需要将其存储在一个文件中,什么是最有效的方法,以便我可以快速检索速度?我不关心写入磁盘的效率,但只读 我想知道除了json和pickle之外是否还有一个好的解决方案?Python - 将整数数组存储到磁盘以便高效检索
0
A
回答
1
JSON/pickle是效率非常低的解决方案,因为它们至多需要多个内存副本才能将数据导入或导出。
如果您想获得最佳效率,请保留数据二进制文件。纯粹的python方法会涉及到使用struct.unpack,但是这仍然有点不便,因为你仍然需要一个内存拷贝。
更好的是像numpy.memmap那样直接将你的文件映射到一个numpy数组。速度非常快,非常有效。问题解决了。您也可以使用相同的方法编写文件。
1
msgpack在加载数据时性能方面可能会超过json。或者,至少,在加载许多大文件时,msgpack在my tests中击败json。另一种可能性是尝试HDF5 for Python:
HDF5是一个开放源码库和文件格式,用于存储大量 大量数字数据,最初在NCSA开发的。它在科学界广泛使用,用于从NASA的地球 观测系统到实验室实验 和模拟的数据存储。在过去的几年中,HDF5已经迅速成为Python中事实上的标准技术,用于存储大数字数据集 。
在你的情况下,我会去HDF5。
相关问题
- 1. 将计算的函数存储到磁盘以便在python中快速访问
- 2. Python:如何有效地将2d numpy数组保存到磁盘?
- 3. 将索引LARQ存储到磁盘
- 4. Java - 存储和上传数组到/从内存到磁盘
- 5. Java:整数数组的内存高效存储
- 6. 保存Drawable到磁盘并检索 - Android
- 7. 将数据存储到数组中并检查它是否是有效整数
- 8. Cassandra将Keyspace存储到新磁盘
- 9. 如何将对象存储到磁盘?
- 10. iphone - 将图像存储到磁盘
- 11. 从存储器到磁盘
- 12. 如何将Python /文件数据存储在内存中,直到写入磁盘?
- 13. 将C结构数组存储到核心数据或磁盘上?
- 14. 将NSArray数据保存到磁盘
- 15. 将可变数据保存到磁盘
- 16. 在Ruby中高效地存储/压缩整数数组?
- 17. 检索EXIF数据从UWP拍摄不保存到磁盘
- 18. Corda节点数据检索实现到磁盘或本地存储?
- 19. 输入一个磁盘文件,并将它存储到字符串和整数
- 20. RDFlib'磁盘'存储
- 21. RavenDB磁盘存储
- 22. 以磁盘友好的方式将数据写入磁盘?
- 23. Apache Cassandra磁盘上的数据存储
- 24. Javascript - 将2d数组保存到本地存储并检索
- 25. 高效存储一组数字
- 26. 创建后端数据存储以便快速检索
- 27. 如何在android上存储数据以便快速检索
- 28. Azure VM存储磁盘 - 我可以选择高级存储磁盘大小,还是仅限于P10,P20和P30?
- 29. Gson数据存储和检索。存储为字符串,检索作为整数
- 30. 如何将存储过程的输出存储到磁盘上
也许使用numpy可以提供帮助吗? http://docs.scipy.org/doc/numpy/reference/generated/numpy.save.html –
那么你是否尝试过使用JSON,并发现它对你的需求太慢? –
json可能是你用python实现的最快速的方式...(保存在内存中)... –