在不考虑 NaN 值的情况下对数组中的不同层进行平均

我在三层(从NetCDF文件访问)中屏蔽了数组数据,如下所示。我想说的是这三层在平均时不考虑NaN值(此处为 -1)单元格。任何建议都会有所帮助。


masked_array(


      data=[[ 270,  554, -1],

            [ 270,  -1, 2068],

            [ -1,  554, 2068],

        ...,

        [ -1, -1, 1349],

        [ 704, 1019, -1],

        [ 704, 1019, 1349]],

  mask=False,

  fill_value=999999,

  dtype=int16)

输出应该是这样的:


  data=[[412],

        [1169],

        [1311],

        ...,

        [1349],

        [861.5],

        [1536]]


哈士奇WWW
浏览 88回答 1
1回答

狐的传说

使用pythonic方式:import numpy as np# get data from masked arrayd = np.ma.getdata(masked_array)# get the meanmasked_mean = [row[row!=-1].mean() for row in d]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python