我蒙蔽了鬼魂阵。在处理每个元素时,我需要首先检查特定元素是否被屏蔽,如果被屏蔽,则需要跳过这些元素。在
我试过这样做:
from netCDF4 import dataset
data=Dataset('test.nc')
dim_size=len(data.dimensions[nc_dims[0]])
model_dry_tropo_corr=data.variables['model_dry_tropo_corr'][:]
solid_earth_tide=data.variables['solid_earth_tide'][:]
for i in range(0,dim_size)
try :
model_dry_tropo_corr[i].mask=True
continue
except :
Pass
try:
solid_earth_tide[i].mask=True
continue
except:
Pass
correction=model_dry_tropo_corr[i]/2+solid_earth_tide[i]
有没有其他有效的方法,请告诉我。非常感谢您的建议或意见。在
而不是你可以使用的循环
这将创建一个新的掩码数组,其中包含您的答案和掩码。然后可以从新数组访问未屏蔽的值。在
我对这个密码感到困惑
我没有安装
netCDF4
,但是从文档中可以看出,您的变量看起来像是一个numpy.ma
掩码数组。在如果打印此变量的全部或部分内容,并带有shape和dtype之类的属性,则会很有帮助。在
我可以用如下表达式创建一个掩码数组:
^{pr2}$我可以测试给定元素的掩码是否为真/假:
但如果我先索引
所以是的,try/except将跳过掩码设置为True的元素。在
但我认为这样做是很清楚的:
但这仍然是反复的。在
但是,正如
@user3404344
所示,您可以用变量执行数学运算。掩蔽会继续下去。但是,如果被屏蔽的值是“坏的”并导致计算中的错误,那么这可能是一个问题。在如果我定义另一个屏蔽数组
您可以看到在
M
或N
中被屏蔽的元素是如何在结果中被屏蔽的我可以使用
compressed
方法只给出有效的元素在使用遮罩数组进行数学运算时,填充也很方便:
我可以使用
filled
来中和问题计算,并仍然屏蔽这些值哎哟,我不需要担心隐藏的值会扰乱计算。那个蒙面的人在替我补课
相关问题 更多 >
编程相关推荐