薄暗い配列と'time', 'lat', 'lon'
だけの配列があります'lat', 'lon'
。2D (lat-lon) マスクで時間依存データをマスクするために、これを行う必要があることがよくあります。
x.data[:, mask.data] = np.nan
もちろん、計算は期待どおりにブロードキャストされます。y
が 2 次元緯度データの場合、その値は x のすべての時間座標にブロードキャストされます。
z = x + y
しかし、インデックス作成は期待どおりにブロードキャストされません。これを実行できるようにしたいのですが、ValueError: Buffer has wrong number of dimension が発生します:
x[mask] = np.nan
最後に、期待どおりに時間座標全体にマスクの値をブロードキャストするようですxr.where
が、この方法で値を設定することはできません。
x_masked = x.where(mask)
それで、次元が欠落している(そしてブロードキャストする必要がある)ブール値マスクを使用して値を設定しやすくするために、ここで欠けているものはありますか?一番上で提供したオプションは本当にこれを行う方法ですか (その場合、標準のnumpy配列を使用するだけでよいかもしれません...)