【问题标题】:What is the fastest way to load file using python and numpy?使用 python 和 numpy 加载文件的最快方法是什么?
【发布时间】:2019-07-18 10:42:07
【问题描述】:

我想训练一个模型,并且我有一个用于训练的大型数据集。 它的大小超过20GB。 但是当我尝试阅读它时,它花了很长时间。 我的意思是把它加载到内存中。

with open(file_path, newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for i,row in enumerate(islice(reader,0,1)):
        train_data = np.array(makefloat(row))[None,:]
    for i,row in enumerate(reader):
        train_data = np.vstack((train_data,np.array(makefloat(row))[None,:]))

每行有 43 个浮点数。

花了这么长时间,我只测试了 100,000 行,用了 20 分钟。

我认为我做错了。我怎样才能让它更快?

【问题讨论】:

  • 您可能不想将整个文件读入内存。尝试加载批量数据。如果您使用 Tensorflow 或 Keras 进行训练,您可能可以设置一个适当的数据管道来为您处理它。
  • 重复vstack 这样很慢。最好在列表中收集行,并在最后做一个vstack
  • pandas csv 阅读器比 numpy 阅读器更快(loadtxtgenfromtxt)。

标签: python numpy keras io bigdata


【解决方案1】:

阅读整个文件并不好。您可以使用 Dask 之类的东西,它会分块读取您的文件并且速度会更快。 Dask

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-13
    • 2010-11-30
    • 2022-11-03
    • 2023-03-25
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多