2017-02-09 79 views
0

我使用numpy.memmap(如下所示)創建了大型numpy array如何計算基於xy座標的偏移量以從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

爲什麼你需要使用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是您在創建地圖時可以提供的參數。它是固定的。你不會擺弄它來訪問元素。

+0

@ hpaulj你能稍微解釋一下你的代碼嗎? –

相關問題