如何计算基于xy坐标的偏移量来读取numpy.memmap?

时间:2017-02-09 13:49:19

标签: python arrays numpy offset

我使用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

1 个答案:

答案 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是您在创建地图时可以提供的参数。这是固定的。你不会操纵它来访问元素。