【发布时间】:2016-07-27 22:10:25
【问题描述】:
我想分配给(一片)一个蒙面的 numpy 数组,但不修改掩码。 (分配通常会清除掩码(除非它是“硬”),这似乎与掩码的目的完全相反,但这就是我们必须使用的。)我也希望这个例程适用于普通的未掩码数组。
有没有比保存和恢复蒙版更好的方法来做到这一点?
a = np.ma.array([0, 1, 2], mask=[0, 1, 0])
mask = a.mask.copy() if np.ma.is_masked(a) else None # Have to copy because it might be shared
a[a < 2] = -1
if mask is not None:
a.mask = mask
print(a, a.data)
# [-1 -- 2] [-1 -1 2]
这是 Python 2,numpy 1.11.1。
【问题讨论】: