簡體   English   中英

展開尺寸xarray

[英]Expand dimensions xarray

是否有現有的方法或方法來擴展xarray.DataArray對象的維度(和坐標)?

我想獲得類似於np.expand_dims的東西,同時為新擴展的DataArray定義一個新的維度和坐標變量。

使用DataArray.assign_coords()我可以創建一個新的坐標變量,但數組本身不會使用新軸進行擴展。

在xarray v0.10.0中,我使用assign_coords()expand_dims()來添加新的維度和坐標變量。

例如:

import xarray as xr
import numpy as np
data = xr.DataArray([1, 2, 3], dims='x', coords={'x': [10, 20, 30]})
data_newcoord = data.assign_coords(y='coord_value')
data_expanded = data_newcoord.expand_dims('y')
print(data_expanded)
# <xarray.DataArray (y: 1, x: 3)>
# array([[1, 2, 3]])
# Coordinates:
#   * x        (x) int64 10 20 30
#   * y        (y) <U11 'coord_value'

我同意某種方法可以做到這一點。 它目前不存在於xarray中,但我建議您在GitHub上提交一個問題來討論新功能的API和/或實現它的拉取請求。

新的xarray.broadcast函數包含一些可能滿足此目的的相關功能:

import xarray as xr
import numpy as np
data = xr.DataArray([1, 2, 3], dims='x')
other = xr.DataArray(np.zeros(4), coords=[('y', list('abcd'))])
data2, other2 = xr.broadcast(data, other)
print(data2)
# <xarray.DataArray (x: 3, y: 4)>
# array([[1, 1, 1, 1],
#       [2, 2, 2, 2],
#       [3, 3, 3, 3]])
# Coordinates:
#   * x        (x) int64 0 1 2
#   * y        (y) |S1 'a' 'b' 'c' 'd'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM