【发布时间】:2014-05-28 13:34:05
【问题描述】:
我正在尝试创建随机矩阵并使用 numpy.save 将其保存在二进制文件中
然后我尝试使用 numpy.memmap 映射这个文件,但它似乎映射错了。
如何解决?
它似乎读取了 .npy 标头,我需要从头开始 scip 一些字节。
rows=6
cols=4
def create_matrix(rows,cols):
data = (np.random.rand(rows,cols)*100).astype('uint8') #type for image [0 255] int8?
return data
def save_matrix(filename, data):
np.save(filename, data)
def load_matrix(filename):
data= np.load(filename)
return data
def test_mult_ram():
A= create_matrix(rows,cols)
A[1][2]= 42
save_matrix("A.npy", A)
A= load_matrix("A.npy")
print A
B= create_matrix(cols,rows)
save_matrix("B.npy", B)
B= load_matrix("B.npy")
print B
fA = np.memmap('A.npy', dtype='uint8', mode='r', shape=(rows,cols))
fB = np.memmap('B.npy', dtype='uint8', mode='r', shape=(cols,rows))
print fA
print fB
更新:
我刚刚发现np.lib.format.open_memmap函数已经存在了。
用法: a = np.lib.format.open_memmap('A.npy', dtype='uint8', mode='r+')
【问题讨论】:
标签: python arrays python-2.7 numpy