##はじめに
python の numpy を使って ndarray をコピーする場合、そのやり方によってコピー元・先のオブジェクトが束縛される場合と別のオブジェクトとなる場合があり注意が必要。代入演算子ではオブジェクトを共有して同じメモリ領域を参照するためコピー先のオブジェクトとコピー元のオブジェクトに互いに影響される。コピー先のオブジェクトをコピー元のオブジェクトとリンクさせたくない場合は深いコピー(deep copy)を行う必要がある。
一方、xarray の copy ではデフォルトで深いコピーになる。
x が numpy の場合
Pythonの標準モジュールである copy をインポートし、copy.deepcopyを使う。
import copy
y = copy.deepcopy(x)
x が xarrayの場合
xarray.DataArray.copyはデフォルトで深いコピーになる。
y = x.copy()
参考HP