我有大约 1500 万对,由一个整数与一批(2 到 100 个)其他整数配对组成。
如果有区别的话,整数本身的范围是 0 到 1500 万。
我考虑过使用:
Pandas,将批次存储为 python 列表
Numpy,其中批次存储为其自己的 numpy 数组(因为 numpy 不允许在其 2D 数据结构中使用可变长度行)
Python 列表列表。
我还查看了 Tensorflow tfrecords,但对此不太确定。
我的 RAM 大约只有 12 GB。我还将使用机器学习算法进行训练,以便
如果必须将所有值存储在内存中,numpy 可能是最有效的方法。 Pandas 是建立在 numpy 之上的,因此它包含一些开销,如果您不需要 pandas 附带的任何功能,则可以避免这些开销。
Numpy 在处理这种大小的数据时应该没有内存问题,但需要考虑的另一件事是使用生成器从每对位于新行的文件中读取数据,这取决于您将如何使用这些数据。这将显着减少内存使用量,但在处理 sum() 或 max() 等聚合函数时会比 numpy 慢,并且如果每个值对独立处理,则更合适。
with open(file, 'r') as f:
data = (l for l in f) # generator
for line in data:
# process each record here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)