Python 操作后memmap文件位于何处?
我有一个使用numpy memmap的矩阵乘法代码Python 操作后memmap文件位于何处?,python,numpy,memory,large-data,Python,Numpy,Memory,Large Data,我有一个使用numpy memmap的矩阵乘法代码 def test_memmap(): fA = np.lib.format.open_memmap('A.npy', dtype='uint8', mode='r+') fB = np.lib.format.open_memmap('B.npy', dtype='uint8', mode='r+') #need to predefine size of result? #fC = np.memmap('C.np
def test_memmap():
fA = np.lib.format.open_memmap('A.npy', dtype='uint8', mode='r+')
fB = np.lib.format.open_memmap('B.npy', dtype='uint8', mode='r+')
#need to predefine size of result?
#fC = np.memmap('C.npy', dtype='uint16', mode='w+', shape=(rows,rows))
# print fA
# print fB
#where it stored if not gived filename?
t0= time.time()
fC= np.dot(fA,fB)
print (time.time()-t0)
print fC.filename
print type(fC)
# print fC[12:10]
# print fC
操作后memmap文件fC位于何处?以及如何指定保存路径
如何指出保存fC(而不是将其存储在内存中)的位置?能否自动检测阵列的类型和大小 虽然
fC
是numpy.core.memmap.memmap的一个实例,
它不与任何文件关联:
print(type(fC))
# <class 'numpy.core.memmap.memmap'>
print(fC._mmap)
# None
print(fC.filename)
# None
如何指出保存fC(而不是将其存储在内存中)的位置?是否可以自动检测数组的类型和大小?您可以将
fC
保存到npy文件中:np.save(path,fC)
,然后将其读回memmap:fC=np.lib.format。打开\u memmap(…)
。形状以npy格式存储。但问题是我需要将数据准确地写入磁盘,我无法将temp结果保存在内存中。np.dot
,与许多NumPy函数一样,有一个out
参数。如果指定out
参数,则结果将写入该参数给定的数组。我编辑了上面的帖子,展示了如何将fC初始化为memmap,然后使用out
参数让np.dot直接写入它。
fC = np.memmap('/tmp/C.npy', dtype='float', mode='w+', shape=(Arows, Bcols))
np.dot(fA,fB, out=fC)
print fC.filename
# /tmp/C.npy
print type(fC)
# <class 'numpy.core.memmap.memmap'>