如何反转蒙面的numpy数组?

问题描述 投票:0回答:1

我在矢量shapefile上创建了一个掩码,然后创建了另一个放大到相关区域的掩码。我对这个新掩码的问题是掩码区域是我想要的位,所以我需要以某种方式反转它。 (注意我将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))

我真的很感激任何建议!

arrays python-2.7 numpy
1个回答
0
投票

如果你的cachement_mask由boolean(True / False)值组成,那么基于logical_not的解决方案将按预期工作

但你的面具由1NaN组成,所以你必须更仔细地反转它。例如:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.