存储和检索数组的最快方法

时间:2015-06-06 11:32:01

标签: python sql arrays database nosql

我正在开展一个项目,我必须存储大约1700万个128维整数数组,例如[1, 2, 1, 0, ..., 2, 6, 4],我试图找出什么是' s最好的方法。

完美的解决方案是能够快速存储和检索数组,因为我需要访问所有这些数据才能进行计算。有了这么多的数据,我显然无法将它们全部存储在内存中以便进行计算,因此访问批量的数组应该尽可能快。

我在Python工作。

你推荐什么?使用DBSQL vs NOSQL?),将其存储在文本文件中,使用python' Pickle?

2 个答案:

答案 0 :(得分:1)

考虑到数据集的大小(34 GB,假设16位整数),将数据集存储为带有PyTables的HDF5可能是最佳选择。

PyTables专门开发用于有效处理无法在内存中同时加载的极大数据集。另外,请查看可以提高I / O效率并​​节省一些磁盘空间的compression options

答案 1 :(得分:0)

如果你的整数是8位,那么numpy数组似乎没那么大。在我的计算机上创建a=numpy.ones((17e6,128),uint8)不到一秒钟。但是ones((17e6,128),uint16)很难,ones((17e6,128),uint64)崩溃了。