gpt4 book ai didi

python - numpy.memmap 映射保存文件

转载 作者:太空狗 更新时间:2023-10-30 01:01:42 49 4
gpt4 key购买 nike

我正在尝试创建随机矩阵并使用 numpy.save 将其保存在二进制文件中

然后我尝试使用 numpy.memmap 映射这个文件,但它似乎映射错误。

如何解决?

它似乎读取了 .npy header ,我需要从头开始截取一些字节。

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+')

最佳答案

如果您的目标是打开用 np.save 保存的数组作为内存映射,那么您可以只使用 np.load 和选项 mmap_mode:

fA = np.load('A.npy', mmap_mode='r')
fB = np.load('B.npy', mmap_mode='r')

通过这种方式,您实际上可以从存储在 .npy 文件中的 header 中获益,因为它会跟踪数组的形状和 dtype。

关于python - numpy.memmap 映射保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23062674/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com