我在一个文件中有一个(20000000, 247)
大小尺寸的数组。我有可用的内存。我需要沿行对数据进行洗牌。我已经在. 但是,如果我尝试就地修改以外的任何操作,例如创建一个 random.sampled 索引数组然后返回,我会得到 MemoryError。我也尝试过改组 in 块,然后尝试堆叠块以构建完整的数组,但是. 到目前为止,我发现的唯一解决方案是加载文件,然后执行. 但是,这需要很长时间(已经 5 个小时了,它仍然被洗牌)。30 GB
.npy
32 GB
mmap_mode
np.random.permutation
p
array[p]
MemoryError
mmap_mode = 'r+'
np.random.shuffle
当前代码:
import numpy as np
array = np.load('data.npy',mmap_mode='r+')
np.random.seed(1)
np.random.shuffle(array)
有没有更快的方法可以在不破坏内存限制的情况下做到这一点?