我有一个尺寸为100x100的称为img的2D数组。我试图将所有大于-100且小于100的值都屏蔽掉。
img = np.ma.masked_where(-100 < img < 100, img)
但是,以上内容给我一个错误的说法
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
谢谢。
答案 0 :(得分:0)
您不能对NumPy数组使用链式比较,因为它们在后台使用了Python and
。
您必须使用&
或等效的功能numpy.logical_and
或numpy.bitwise_and
。
例如:
np.ma.masked_where((-100 < img) & (img < 100), img)
答案 1 :(得分:0)
您还可以使用masked inside,例如,我们可以屏蔽2到5范围内的值:
import numpy as np
from numpy import ma
img = np.arange(9).reshape(3,3)
imgm = ma.masked_inside(img,2,5)