完全にマスクされたマスク配列で加重平均を計算すると、weights=None
orに対して異なる結果が得られweights=1
ます。
import numpy.ma as ma
a = ma.arange(2.)
a[:] = ma.masked # fully masked
ma.average(a) # returns NaN, which is ok since all elements are masked
ma.average(a, weights=None, returned=True) # returns (NaN, 0.0), which is ok also
ma.average(a, weights=(1,1), returned=True) # returns 'masked'
最後の 2 行は同じ結果、つまり、同じ数の出力と同じ値が得られると思いますが、そうではありません。最も厄介なことに、最後のケースでは、2 番目の出力引数を取得しようとしたときにエラーが発生します。これらの結果が得られるのはなぜですか?