【发布时间】:2015-02-22 20:24:09
【问题描述】:
我已经积累了 500 个左右的文件,每个文件都有一个存储元数据的数组和标题。比如:
2,.25,.9,26 #<-- header, which is actually cryptic metadata
1.7331,0
1.7163,0
1.7042,0
1.6951,0
1.6881,0
1.6825,0
1.678,0
1.6743,0
1.6713,0
我想有选择地将这些数组读入内存。我们构建了一个 GUI,允许用户从磁盘中选择一个或多个文件,然后将每个文件读入程序。如果用户想读入所有 500 个文件,程序打开和关闭每个文件的速度都很慢。因此,我的问题是:将所有这些存储在一个结构中会加速我的程序吗? hdf5之类的?理想情况下,这将比单个文件具有更快的访问速度。解决此问题的最佳方法是什么?我从来没有处理过这些类型的考虑。在 Python 中加速这个瓶颈的最佳方法是什么?总数据只有几兆字节,我什至可以将它存储在程序中的某个地方,而不仅仅是在磁盘上(但不知道如何做到这一点)
【问题讨论】:
-
你们认为既然数据集实际上不是很大,将它们存储在像pandas DataFrame这样的对象中,然后简单地序列化它,会比从文件中读取更快吗?还是有更好的对象?
-
np.savez将一组数组保存在未压缩的zip存档中,每个文件一个变量。np.load返回这些变量的“字典”。 -
谢谢。我打算用 json 解决,但也许 savez 是要走的路。
标签: python database numpy dataset storage