从循环中我得到一个数组。我想把这个数组保存在tempfile
中。
问题是np.savez
只保存循环中的最后一个数组。我想我明白为什么会这样,但不知道如何做得更好。
为了解决我的问题,我想在mode=a+b
中打开tempfile,目的是从循环中追加新数组。但这不管用。
我的代码:
tmp = TemporaryFile(mode="a+b")
for i in range(10):
array = getarray[i] #demo purpose
np.savez(tmp,array)
tmp.seek(0)
然后使用tempfile读取数组:
tmp_read = np.load(tmp)
print tmp_read.files
[OUTPUT]: ['arr_0']
但我想在tempfile中有10个数组。有什么想法吗?
谢谢
我不是一个有经验的程序员,但这是我做的方式(只是以防万一它可能会帮助某人在未来)。此外,这是我第一次在这里发帖,如果我没有遵循某种标准,我深表歉意;)
创建npz文件:
加载具有原始名称的变量:
唯一的区别是变量会变成numpy变量。
对不起,我的英语提前了。
因为savez函数打开文件,写入所有变量,然后关闭文件,所以数据在调用时会被重写。
savez很简单。你可以在https://github.com/numpy/numpy/blob/master/numpy/lib/npyio.py找到代码
如何实现“your_own_savez”,然后使用以下代码。
这是我的快速和肮脏的代码。
可以使用
*args
参数在一个临时文件中保存多个数组。或:
相关问题 更多 >
编程相关推荐