Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何反转蒙版numpy阵列?_Arrays_Python 2.7_Numpy - Fatal编程技术网

Arrays 如何反转蒙版numpy阵列?

Arrays 如何反转蒙版numpy阵列?,arrays,python-2.7,numpy,Arrays,Python 2.7,Numpy,我在一个向量形状文件上创建了一个遮罩,然后创建了另一个可以放大到相关区域的遮罩。这个新遮罩的问题是,遮罩区域是我想要的,所以我需要以某种方式反转它。(注意,我将numpy作为np导入) 这是我用于第二个掩码的代码: catchment_mask = gmask[minrow:minrow+nrow, mincol:mincol+ncol] catchment_mask = np.where(catchment_mask == 1, 1., np.nan) 我尝试使用此代码将其反转,但它已将遮罩

我在一个向量形状文件上创建了一个遮罩,然后创建了另一个可以放大到相关区域的遮罩。这个新遮罩的问题是,遮罩区域是我想要的,所以我需要以某种方式反转它。(注意,我将numpy作为np导入)

这是我用于第二个掩码的代码:

catchment_mask = gmask[minrow:minrow+nrow, mincol:mincol+ncol]
catchment_mask = np.where(catchment_mask == 1, 1., np.nan)
我尝试使用此代码将其反转,但它已将遮罩应用于整个区域:

inverse_catchment_mask = (np.logical_not(catchment_mask))

如果有任何建议,我将不胜感激

如果您的
cachement\u掩码
由布尔值(真/假)组成,那么基于
logical\u not
的解决方案将按预期工作

但是您的掩码由
1
NaN
组成,因此您必须更仔细地反转它。例如:

inverse_cachement_mask = np.where(np.isnan(cachement_mask), 1, np.nan)

这将创建原始掩码的反转,交换
1
NaN
值。

缩进关闭。有一个
np.ma
,MaskedArray子类,但我认为这不是您所拥有的。看起来您的
掩码
gmask
的一部分,但随后您使用
where
创建了一个新数组。为什么?这不再是
视图
。为什么是np.nan<代码>逻辑\u not的值为
False
。感谢您的解释。我删除了np.where,并用相关参数将其更改为逻辑_,并用布尔值将其反转。