我想通過使用內存映射數組來處理我的應用程序中的內存問題。然而,作爲我的計算的一部分,我需要將數組中的某些值設置爲0.不幸的是,數組掩碼將需要額外的內存。有沒有辦法做到以下幾點,使面罩得到乾淨的處理?我可以製作一張numpy內存映射掩碼嗎?
source_array = numpy.memmap(filename, dtype='float32', mode='w+', shape=shape)
#Load data into memory mapped numpy array
band.ReadAsArray(buf_obj = source_array)
#set values == 255 to 0
numpy.putmask(source_array, source_array >= 255.0, 0.0)
我相信,隨着source_array >= 255.0
最後一行必須在大內存陣列,對不對?除了手動循環每個元素之外,是否有一種有效的內存機制來將source_array
中的所有255個值都設置爲0?
Arg!我很親密。首先,我發現['numpy.clip'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.clip.html),它可以讓你幾乎完成這個任務(沒有值替代)。然後,我發現['scipy.stats.threshold'](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.threshold.html),它可以讓你替換掉 - 範圍值,但*不*工作到位!哦,也許這些鏈接將幫助你找到我不能做的事情。 –