Python 操作后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

我有一个使用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.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'>