python Xarray 长度不匹配
python Xarray lenght mismatch
我正在学习 Xarray 库,并且正在尝试为 3D 数据创建 Xarray。以下代码段不起作用:
>>> colx = ['c1', 'c2', 'c3', 'c4']
>>> coly = ['a1', 'a2', 'a3']
>>> colz = ['b1', 'b2']
>>> t = xr.DataArray(np.zeros((4,3,2)),dims = {'x', 'y','z'}, coords={'x':colx, 'y': coly, 'z': colz})
>>> t
ValueError: conflicting sizes for dimension 'x': length 3 on the data but length 4 on coordinate 'x'
以下代码有效,但我需要置换 x、y、z 维度的长度以创建 Xarray。维度 (4,3,2) 置换为 (3,2,4)。
>>> colx = ['c1', 'c2', 'c3', 'c4']
>>> coly = ['a1', 'a2', 'a3']
>>> colz = ['b1', 'b2']
>>> t = xr.DataArray(np.zeros((4,3,2)),dims = {'x', 'y','z'}, coords={'x':coly, 'y': colz, 'z': colx})
>>> t
<xarray.DataArray (z: 4, x: 3, y: 2)>
array([[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]]])
Coordinates:
* x (x) <U2 'a1' 'a2' 'a3'
* y (y) <U2 'b1' 'b2'
* z (z) <U2 'c1' 'c2' 'c3' 'c4'
- 这正常吗?
- 为什么会这样?
- 排列如何适用于高维数据?
将 dims 指定为列表,例如dims=['x'、'y'、'z'],而不是一组就可以了,请参阅 spencerclark 的评论。
我正在学习 Xarray 库,并且正在尝试为 3D 数据创建 Xarray。以下代码段不起作用:
>>> colx = ['c1', 'c2', 'c3', 'c4']
>>> coly = ['a1', 'a2', 'a3']
>>> colz = ['b1', 'b2']
>>> t = xr.DataArray(np.zeros((4,3,2)),dims = {'x', 'y','z'}, coords={'x':colx, 'y': coly, 'z': colz})
>>> t
ValueError: conflicting sizes for dimension 'x': length 3 on the data but length 4 on coordinate 'x'
以下代码有效,但我需要置换 x、y、z 维度的长度以创建 Xarray。维度 (4,3,2) 置换为 (3,2,4)。
>>> colx = ['c1', 'c2', 'c3', 'c4']
>>> coly = ['a1', 'a2', 'a3']
>>> colz = ['b1', 'b2']
>>> t = xr.DataArray(np.zeros((4,3,2)),dims = {'x', 'y','z'}, coords={'x':coly, 'y': colz, 'z': colx})
>>> t
<xarray.DataArray (z: 4, x: 3, y: 2)>
array([[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]],
[[0., 0.],
[0., 0.],
[0., 0.]]])
Coordinates:
* x (x) <U2 'a1' 'a2' 'a3'
* y (y) <U2 'b1' 'b2'
* z (z) <U2 'c1' 'c2' 'c3' 'c4'
- 这正常吗?
- 为什么会这样?
- 排列如何适用于高维数据?
将 dims 指定为列表,例如dims=['x'、'y'、'z'],而不是一组就可以了,请参阅 spencerclark 的评论。