0
當在不同的數據陣列上運行時,xarray
足以幫助確保操作發生在具有相同座標的值上。這通常是可取的,但有時我想明確使用不同座標值操作。這將導致一個空DataArray
:如何在同一維度內使用不同座標的值進行操作?
In [275]: ds = xarray.DataArray(random.random(size=10), {"a": arange(10)}, dims=["a"])
In [274]: ds.sel(a=slice(5, None)) - ds.sel(a=slice(0, 4))
Out[274]:
<xarray.DataArray (a: 0)>
array([], dtype=float64)
Coordinates:
* a (a) int64
當然,我可能不是基礎.values
上運行,繞過xarray
,但有一種方法來xarray API內做到這一點?我意識到我必須通知xarray應爲結果分配什麼座標,但尺寸,不受影響的座標,名稱,編碼和屬性仍然可以複製。
我實際用例是要找到其中兩個A[i] & B[i+1]
爲布爾數組A
和B
具有相同的座標,如(A[:-1] & B[1:])
,但xarray
很有幫助對準使得這等同於(A & B)[1:-1]
,具有不同的意義的實例。
但也有許多可能的應用:
- 以在不同的時間
- 進行測量以不同的緯度/經度
你想要結果的座標是什麼?這看起來有點像你想要拒絕座標標籤,只是加入位置。 – Maximilian
您可以複製DataArray,移動座標,然後加入?這樣,舊的da和新的da將會由於轉移而關閉 – Maximilian
@Maximilian我意識到我需要通知'DataArray'的座標。在這種情況下,我確實想要拒絕座標標籤,我已經解決了('x.variable'&'y.variable'),但遺憾的是,它也丟失了所有其他信息。 – gerrit