2016-10-26 3 views
1

私は4月、5月、6月の月を選択したいxarray DataArrayを持っています(time.season == 'JJA'と同様)。特定の月に基づいてxarray/pandasインデックスを選択してください

seasonal_data =temp_data.sel(time=temp_data['time.season']=='JJA') 
私は同じことをしたいと思っ

代わりヶ月AMJ 'で:私は以前でJJAを選択されている

<xarray.DataArray 't2m' (time: 492, latitude: 81, longitude: 141)> 

:よう

その構造化。私は、欠けているかもしれない詳細を追加することができます。カスタムヶ月を選択するための最も簡単な方法は、ブール値のマスクを使用することです

おかげ

答えて

5

、例えば、

def is_amj(month): 
    return (month >= 4) & (month <= 6) 

seasonal_data = temp_data.sel(time=is_amj(temp_data['time.month'])) 

あなたが&または|などのビット演算子を使用する必要があります。注Pythonのビルトインのためandorはベクターでは機能しません。また、ビット演算子は比較よりも優先順位が高いため、かっこが必要です。

+0

私はこれをやろうとしていましたが、エラーが続いていました。この方法は非常にうまくいった。私はそれがtime.season == 'JJA'が基礎となるコードでどのように動作するのかと仮定していますか? – Gabe

+0

自分のために見てみましょう: https://github.com/pydata/xarray/blob/90c854fd0ad20a35935319eb5b45a827d3269e81/xarray/core/dataset.py#L69-L73 私たちは、実際にある、整数の除算の剰余4でトリックを使用しますおそらくやや速いが、あまり明確ではない(一般化しにくい)。 – shoyer

+0

ありがとう@shoyer、このメソッドは本当にうまく動作します。 – drg

関連する問題