我正在尝试向DataArray添加一定长度的新维度。
我尝试使用expand_dims方法,其文档表明我应该能够做到这一点
“要包含在新变量中的维。如果提供为str或str序列,则将插入长度为1的维。如果提供为dict,则键为新维,值可以为整数( strong>给出新尺寸的长度)或序列/ ndarray(给出新尺寸的坐标)。“
我尝试了这个,但是没有运气。
test = xr.DataArray([1,2,3,4,5,6])
test
Out[114]:
<xarray.DataArray (dim_0: 6)>
array([1, 2, 3, 4, 5, 6])
Dimensions without coordinates: dim_0
test.expand_dims({'dim_1':3})
Out[115]:
<xarray.DataArray (dim_1: 1, dim_0: 6)>
array([[1, 2, 3, 4, 5, 6]])
Dimensions without coordinates: dim_1, dim_0
我从额外的括号中看到了数组中的附加维度,但是长度为一个:
test.expand_dims({'dim_1':3}).shape
Out[120]: (1, 6)
我想我期望形状是(3,6),扩展数据,或者是(3,2),重塑形状。
我在做什么错或不理解?我刚刚发现了xarray,所以完全有可能这是我没有得到的概念性事情。
答案 0 :(得分:1)
尝试一下:
test.expand_dims(dim_1 = 3)
Out:
<xarray.DataArray (dim_1: 3, dim_0: 6)>
array([[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6]])
Dimensions without coordinates: dim_1, dim_0
test.expand_dims(dim_1 = 3).shape
Out: (3, 6)