使用python和numpy加载文件的最快方法是什么?

使用python和numpy加载文件的最快方法是什么?,python,numpy,keras,io,bigdata,Python,Numpy,Keras,Io,Bigdata,我想训练一个模型,我有一个大的数据集用于训练。 它的大小超过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,:

我想训练一个模型,我有一个大的数据集用于训练。 它的大小超过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个浮点数

花了很长时间,我只测试了100000行,花了20分钟


我想我做错了。如何使它更快?

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

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