1

データの2次元配列があります。2行ごとに平均し、高さの半分の配列で平均を返す必要があります。また、平均化のためにすべてのNaN値を無視する必要があります。例えば:

>>> x = numpy.array([[ 1,  nan,  3,  4,  5],
... [ 6,  7,  8,  9, nan],
... [11, 12, 13, 14, nan],
... [16, nan, 18, 19, nan]])

そして、関数は次を返す必要があります。

>>> x
array([[3.5,  7,  5.5,  6.5,  5],
[13.5, 12, 15.5, 16.5, nan]])
4

1 に答える 1

3

これでうまくいくはずです:

numpy.ma.average(numpy.ma.masked_invalid(x).reshape(-1, 2, x.shape[-1]), 1)

私にとっては

masked_array(data =
 [[3.5 7.0 5.5 6.5 5.0]
 [13.5 12.0 15.5 16.5 --]],
             mask =
 [[False False False False False]
 [False False False False  True]],
       fill_value = 1e+20)
于 2012-09-11T04:33:11.250 に答える