我想将多个大型numpy数组保存到一个numpy二进制文件中,以防止代码崩溃,但当我添加数组时,它似乎会不断被覆盖。最后保存的数组是打开并读取save.npy时设置为AllArray的数组。这是我的密码:
with open('save.npy', 'wb') as f:
for num in range(500):
array = np.random.rand(100,400)
np.save(f, array)
with open('save.npy', 'rb') as f:
allarrays = np.load(f)
如果该文件以前存在,我希望在重新运行代码时覆盖它。这就是为什么我选择“wb”而不是“ab”
我也遇到了这个问题,并以一种不太整洁的方式解决了它,但也许它对其他人有用。它的灵感来自hpaulj的方法,该方法是不完整的(即不加载数据)。也许这不是一个人应该如何解决这个问题的开始…但无论如何,请继续读下去
我使用与OP类似的程序保存数据
遇到了调用
np.load()
只加载最后保存的数组的问题,其余的都没有加载。但是,我知道数据原则上包含在*.npy
文件中,因为文件大小在保存循环中不断增大。所需要的只是在反复调用load命令的同时循环numpy数组的内容。由于我不太清楚文件中包含了多少个文件,我只是在加载循环上循环,直到失败。它很粗糙,但很管用然后您可以调用
len(data_to_read)
来查看其中包含多少数组。调用data_to_read[0]
会给出第一个保存的数组,等等您可以尝试将内存映射到磁盘
当你加载时,你已经收集了列表中的所有加载
load
仅从当前文件位置开始加载一个数组相关问题 更多 >
编程相关推荐