我正在尝试通过使用内存映射数组来处理我的应用程序中的内存问题。但是,作为计算的一部分,我需要将数组中的某些值设置为 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?