masked array

numpy masked arrayは,numpy arrayのそれぞれの要素にmaskという属性をつけて,maskがtrueなら計算に使わないための機能である.欠損値(nan)を使うことにくれべると,1)計算に使わないけれどnanではない値が配列要素に入っている,場合と,2)nanには対応していないけれどmasked array には対応している関数を使う場合,にメリットがある.2番の例としては,numpy.corrcoefはnanを処理できないが,masked arrayにしておけばnumpy.ma.corrcoefで欠損のあるデータの相関係数を求めることができる.一方nanmeanなどnanに対応する関数がある場合は,masked arrayにする必要はない.nanを持つnumpy arrayとmasked arrayで,並列同士の足し算,掛け算,割り算で速度を評価すると,掛け算・割り算はnumpy arrayのほうが速く,足し算は同程度だった.

欠損値を持つnumpy arrayをnumpy masked arrayに変換するには次のようにすればよい.

x_ma=np.ma.masked_array(x_na,np.isnan(x_na))