我想在2D numpy数组上应用掩码。但它不能正常工作。假设我有
val(lat, lon) ---> my 2D array (20, 30)
Mask_lat = np.ma.masked_array(lat, mask=latmask) ---> masked lat (5,)
Mask_lon = np.ma.masked_array(lon, mask =lonmask) ---> masked lon (8,)
Maks_val = np.ma.masked_array(val, mask=mask_lat_lon) ---> ?
我不知道如何传递一个正确的mask_lat_lon
来屏蔽{
提前谢谢你。在
如果我没弄错你的问题,你有两个1D数组,它们代表2D数组中的y和x(lat和long)位置。要根据二维阵列中的x/y位置遮罩区域。在
要理解的关键部分是2D数组的遮罩也是2D的
例如,让我们遮罩二维阵列的单个元素:
这就产生了:
^{pr2}$在您的例子中,您有两个1dx和y数组,您需要从中创建2D掩码。例如:
然后我们需要使用广播将它们组合成一个二维掩模:
使用}是什么样子是很有用的:
newaxis
(或者None
,它们是同一个对象)在该位置添加一个新轴,将1D数组转换为2D数组。如果您以前见过这种情况,那么快速了解一下xmask[np.newaxis, :]
和{mask
将是(请记住,True
元素是被屏蔽的):最后,我们可以基于这个掩码从
z
创建一个2D掩码数组:最后的结果是:
相关问题 更多 >
编程相关推荐