我是使用 numpy.core.memmap 对象的新手,并且无法弄清楚如何使用 numpy.memmap() 编辑现有的 .npy 文件读入 python。例如,按照 Scipy.org 的示例,我可以创建一个对象并写入它,但是一旦创建,我就无法修改其内容。
from tempfile import mkdtemp
import os.path as path
data = np.arange(12, dtype='float32')
data.resize((3,4))
filename = path.join(mkdtemp(), 'newfile.dat')
fp = np.memmap(filename, dtype='float32', mode='w+', shape=(3,4))
fp[:] = data[:] ### write data to fp array
del fp ### remove fp object
fpc = np.memmap(filename, dtype='float32', mode='c', shape=(3,4)) ### This is writeable in memory
fpc[0,:] = 0
del fpc ### close object
这只是从内存中删除对象,但不会修改文件名处的对象。我也尝试过 numpy.memmap.flush(fpc) ,但这似乎也不起作用。
我从阅读其他帖子中了解到,可以简单地将编辑后的 .npy 文件复制到另一个位置,但这似乎在磁盘空间方面可能会出现问题。您不能修改现有的 .npy 文件是否正确?