メモリ マップド配列を使用して、アプリケーションのメモリの問題を処理しようとしています。ただし、計算の一部として、配列の一部の値を 0 に設定する必要があります。残念ながら、配列マスクには追加のメモリが必要です。マスクがきれいに扱われるように、次のことを行う方法はありますか?
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
、メモリ内に大きな配列を作成する必要があると思いますよね?各要素を手動でループする以外に、255 個の値をすべてsource_array
0 に設定するメモリ効率の良いメカニズムはありますか?