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

Average different layers in a Array without considering NaN value

我在三层中屏蔽了数组数据(从 NetCDF 文件访问),如下所示。我想 mean 这三层而不考虑 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]]

使用pythonic方式:

import numpy as np

# get data from masked array
d = np.ma.getdata(masked_array)

# get the mean
masked_mean = [row[row!=-1].mean() for row in d]