[英]How to store HUGE python list as a file and then read the file as a list in python?
我在做一个机器学习项目,我的数据集是由数千张x光图片组成的,每次我想在这个项目上工作时,我都必须重新加载图片并对其进行预处理,这非常耗时,所以我想要读取我的图像一次并将数千个 224x224x3 矩阵的列表写入一个文件中,我可以在每次需要处理此项目时加载该文件。
我已经找到了一些允许我写/读列表的函数,但它们似乎并没有写出整个矩阵,而只是写了一部分:
这是我用来编写文件的代码:
with open(obj_dir +"train_data_p", "w") as file:
file.write(str(train_data_p))
这是我用记事本打开训练数据集文件时得到的结果,正如您从“...”部分看到的那样,它仅显示矩阵片段:
[array([[[0.26666668, 0.26666668, 0.26666668],
[0.32156864, 0.32156864, 0.32156864],
[0.33333334, 0.33333334, 0.33333334],
...,
[0.75686276, 0.75686276, 0.75686276],
[0.77254903, 0.77254903, 0.77254903],
[0.7764706 , 0.7764706 , 0.7764706 ]],
[[0.27058825, 0.27058825, 0.27058825],
[0.28627452, 0.28627452, 0.28627452],
[0.31764707, 0.31764707, 0.31764707],
...,
[0.7607843 , 0.7607843 , 0.7607843 ],
[0.7647059 , 0.7647059 , 0.7647059 ],
[0.8039216 , 0.8039216 , 0.8039216 ]],
[[0.3019608 , 0.3019608 , 0.3019608 ],
[0.34901962, 0.34901962, 0.34901962],
[0.27058825, 0.27058825, 0.27058825],
...,
[0.78431374, 0.78431374, 0.78431374],
[0.7764706 , 0.7764706 , 0.7764706 ],
[0.78431374, 0.78431374, 0.78431374]],
...,
[[0.1254902 , 0.1254902 , 0.1254902 ],
[0.1254902 , 0.1254902 , 0.1254902 ],
[0.12156863, 0.12156863, 0.12156863],
如何写入/存储整个数据集,以便我不必每次都读取和处理图像? 请帮帮我!
您可以通过numpy.save()
和numpy.load()
方法来完成
import numpy as np
np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))
np.load('/tmp/123.npy')
您在文件中看到省略号的原因是您将str(train_data_p)
写入文件,而不是实际的train_data_p
对象。
正如其他答案所指出的那样,有许多软件包可以帮助存储大数据。 如果您使用的是 numpy, 这个答案也可能对您有所帮助。
您可以轻松地使用内置模块序列化您的数据。
我们有不同的选项列表:
或 pip 中可用的任何其他 3rd 方序列化包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.