将 3D DataArray 重塑为 2d DataArray
Reshaping 3D DataArray into 2d DataArray
我有 xarray dataarray
以下形状。
(10, 666, 999)
作为 ("band", "y", "x")
.
我想让新 dataarray
变成 (666*999, 10)
形状。
我该如何解决?
我试过 ans = x_arr.transpose("y", "x", "band").reshape(666*999, 10)
但是没有用。
AttributeError: 'DataArray' object has no attribute 'reshape'
参考,http://xarray.pydata.org/en/stable/generated/xarray.DataArray.html
您可以使用 stack
将现有维度组合成一个新维度。在您的情况下,它类似于 darr.stack(xy=["x", "y"])
这是一个可重现的例子:
x = xr.tutorial.load_dataset("air_temperature")
print(x.air.shape)
#(2920, 25, 53)
x2 = x.air.stack(point=["lat", "lon"])
print(x2.shape)
#(2920, 1325)
我有 xarray dataarray
以下形状。
(10, 666, 999)
作为 ("band", "y", "x")
.
我想让新 dataarray
变成 (666*999, 10)
形状。
我该如何解决?
我试过 ans = x_arr.transpose("y", "x", "band").reshape(666*999, 10)
但是没有用。
AttributeError: 'DataArray' object has no attribute 'reshape'
参考,http://xarray.pydata.org/en/stable/generated/xarray.DataArray.html
您可以使用 stack
将现有维度组合成一个新维度。在您的情况下,它类似于 darr.stack(xy=["x", "y"])
这是一个可重现的例子:
x = xr.tutorial.load_dataset("air_temperature")
print(x.air.shape)
#(2920, 25, 53)
x2 = x.air.stack(point=["lat", "lon"])
print(x2.shape)
#(2920, 1325)