我在一个文件中有一个(20000000, 247)大小尺寸的数组。我有可用的内存。我需要沿行对数据进行洗牌。我已经在. 但是,如果我尝试就地修改以外的任何操作,例如创建一个 random.sampled 索引数组然后返回,我会得到 MemoryError。我也尝试过改组 in 块,然后尝试堆叠块以构建完整的数组,但是. 到目前为止,我发现的唯一解决方案是加载文件,然后执行. 但是,这需要很长时间(已经 5 个小时了,它仍然被洗牌)。30 GB.npy32 GBmmap_modenp.random.permutationparray[p]MemoryErrormmap_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)
有没有更快的方法可以在不破坏内存限制的情况下做到这一点?