1
加權平均的結果不一致。當我計算一個屏蔽數組是完全屏蔽的加權平均,我得到不同的結果爲weights=None
或weights=1
:在numpy的蒙面陣列
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級錯誤:第一,函數在被要求輸出它應該返回時崩潰,第二,返回不同的值(至少在語義上)等效輸入... –
@RolfBartstra事實它在最後一種情況下不返回元組應該是一個錯誤。只需在調用之前放入一個'try:除IndexError:'函數外,應該沒問題。或者'if result == ma.masked'。 – tiago