我有一个 2D 的 numpy 数组,需要根据条件进行掩蔽,以便可以对掩蔽后的数组执行操作,然后将掩蔽的值恢复到原始状态。
例如:
import numpy as np
array = np.random.random((3,3))
condition = np.random.randint(0, 2, (3,3))
masked = np.ma.array(array, mask=condition)
masked += 2.0
但是,当我对掩码数组应用给定操作后,如何将掩码值改回原始值并“删除”掩码呢?
我需要这样做的原因是,我基于一组条件生成布尔数组,并且需要修改满足条件的数组元素。
对于1D数组,我可以使用布尔索引来完成此操作,但是对于2D数组,我需要保留其原始形状,即不能返回仅包含满足条件的值的1D数组。
masked.mask = False
。 - Marcin