1

我首先创建一个 memmap,加载一些随机数,然后将其删除以将其保存到文件中:

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]]

出于某种原因,它不保存随机数?我正在使用谷歌 Colab。

4

1 回答 1

1

我将这一行:更改 db = np.random.uniform(size = (5,5)) 为:db[:] = np.random.uniform(size = (5,5)) 现在它可以工作了。我想这是因为我没有向 memmap 添加数据,而是用常规的 numpy 数组完全覆盖它?

于 2020-10-27T10:32:26.313 回答