python数组增加维度_python – 为xarray DataArray添加维度

我需要为DataArray添加一个维度,在新维度上填充值.这是原始数组.

a_size = 10

a_coords = np.linspace(0, 1, a_size)

b_size = 5

b_coords = np.linspace(0, 1, b_size)

# original 1-dimensional array

x = xr.DataArray(

np.random.random(a_size),

coords=[('a', a coords)])

我想我可以创建一个带有新维度的空DataArray并复制现有数据.

y = xr.DataArray(

np.empty((b_size, a_size),

coords=([('b', b_coords), ('a', a_coords)])

y[:] = x

更好的想法可能是使用concat.我花了一段时间才弄清楚如何为concat维度指定dims和coords,并且这些选项都不是很好.有什么我想念的东西可以使这个版本更干净吗?

# specify the dimension name, then set the coordinates

y = xr.concat([x for _ in b_coords], 'b')

y['b'] = b_coords

# specify the coordinates, then rename the dimension

y = xr.concat([x for _ in b_coords], b_coords)

y.rename({'concat_dim': 'b'})

# use a DataArray as the concat dimension

y = xr.concat(

[x for _ in b_coords],

xr.DataArray(b_coords, name='b', dims=['b']))

不过,有没有比上述两个选项更好的方法呢?

你可能感兴趣的:(python数组增加维度)