这个 numpy 内存映射创建/保存/加载有什么问题,它似乎没有保存
What is wrong with this numpy memmap create / save / load, it doesn't seem to save
我首先创建一个内存映射,加载一些随机数,然后将其删除以将其保存到文件中:
db = np.memmap('/content/drive/My Drive/Share/DBs/test.npy', mode='w+', shape = (5,5))
db = np.random.uniform(size = (5,5))
print(db)
del db
Output:
[[0.601 0.776 0.566 0.288 0.985]
[0.425 0.381 0.854 0.402 0.894]
[0.242 0.143 0.102 0.702 0.427]
[0.137 0.348 0.493 0.959 0.658]
[0.158 0.023 0.267 0.469 0.352]]
然后当我再次加载它时,我只得到零:
db2 = np.memmap('/content/drive/My Drive/Share/DBs/test.npy', mode='r', shape = (5,5))
print(db2)
Output:
[[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]]
出于某种原因,它没有保存随机数?我正在使用 Google Colab。
我更改了这一行: db = np.random.uniform(size = (5,5))
对此:db[:] = np.random.uniform(size = (5,5))
现在它起作用了。我猜这是因为我没有向 memmap 添加数据,而是用常规的 numpy 数组完全覆盖了它?
我首先创建一个内存映射,加载一些随机数,然后将其删除以将其保存到文件中:
db = np.memmap('/content/drive/My Drive/Share/DBs/test.npy', mode='w+', shape = (5,5))
db = np.random.uniform(size = (5,5))
print(db)
del db
Output:
[[0.601 0.776 0.566 0.288 0.985]
[0.425 0.381 0.854 0.402 0.894]
[0.242 0.143 0.102 0.702 0.427]
[0.137 0.348 0.493 0.959 0.658]
[0.158 0.023 0.267 0.469 0.352]]
然后当我再次加载它时,我只得到零:
db2 = np.memmap('/content/drive/My Drive/Share/DBs/test.npy', mode='r', shape = (5,5))
print(db2)
Output:
[[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]]
出于某种原因,它没有保存随机数?我正在使用 Google Colab。
我更改了这一行: db = np.random.uniform(size = (5,5))
对此:db[:] = np.random.uniform(size = (5,5))
现在它起作用了。我猜这是因为我没有向 memmap 添加数据,而是用常规的 numpy 数组完全覆盖了它?