我使用numpy array
创建了大numpy.memmap
,如下所示。
import numpy as np
memmapData = np.memmap('test.memmap', dtype='uint8', mode='w+', shape=(10000, 10000, 3))
现在如何根据一些XY坐标读取数组。看完之后,我需要画一个矩形。
(即)X1 = 0,Y1 = 1000 X2 = X1 + 500,Y2 = Y1 + 500。那么现在如何通过上面的坐标从test.memmap
读取numpy数组。在这里我如何使用numpy.memmap属性offset
。
答案 0 :(得分:0)
为什么需要使用offset
?你不能像常规数组一样索引吗?
In [221]: memmapData = np.memmap('test.memmap', dtype='uint8', mode='w+', shape=
...: (10, 10, 3))
In [222]: memmapData[...]=np.arange(100).reshape(10,10)[:,:,None]
In [223]: memmapData[0,5,:]
Out[223]: memmap([5, 5, 5], dtype=uint8)
In [224]: memmapData[0,5:,:]
Out[224]:
memmap([[5, 5, 5],
[6, 6, 6],
[7, 7, 7],
[8, 8, 8],
[9, 9, 9]], dtype=uint8)
offset
是您在创建地图时可以提供的参数。这是固定的。你不会操纵它来访问元素。