如何从 xarray DataArray 中删除不需要的空维度(挤压不起作用)
how do I remove unwanted empty dimension from xarray DataArray (squeeze doesn't work)
我有一个具有四个维度的 DataArray,如您所见,时间的大小为 0:
<xarray.DataArray (color: 3, time: 0, y: 297, x: 496)>
array([], shape=(3, 0, 297, 496), dtype=float64)
Coordinates:
* y (y) float64 -3.199e+06 -3.199e+06 -3.199e+06 -3.199e+06 ...
* x (x) float64 1.966e+06 1.966e+06 1.966e+06 1.966e+06 1.966e+06 ...
* color (color) 'red' 'green' 'blue'
* time (time) datetime64[ns]
我需要我的 DataArray 格式为 ('Y','X','color') 但是当我尝试使用 squeeze 摆脱时间维度时:
new_darray = old_darray.squeeze('time')
发生这种情况:
IndexError: index 0 is out of bounds for axis 0 with size 0
当我尝试这个时:
new_darray = old_darray[:,0,:,:]
这也发生了:
IndexError: index 0 is out of bounds for axis 0 with size 0
您无法在 xarray 或 NumPy 中索引或挤出大小为 0 的维度。这需要将大小为 3 * 0 * 279 * 496 = 0
的空数组转换为大小为 3 * 279 * 496 = 415152
的充满数据的数组。新数据从何而来?
我有一个具有四个维度的 DataArray,如您所见,时间的大小为 0:
<xarray.DataArray (color: 3, time: 0, y: 297, x: 496)>
array([], shape=(3, 0, 297, 496), dtype=float64)
Coordinates:
* y (y) float64 -3.199e+06 -3.199e+06 -3.199e+06 -3.199e+06 ...
* x (x) float64 1.966e+06 1.966e+06 1.966e+06 1.966e+06 1.966e+06 ...
* color (color) 'red' 'green' 'blue'
* time (time) datetime64[ns]
我需要我的 DataArray 格式为 ('Y','X','color') 但是当我尝试使用 squeeze 摆脱时间维度时:
new_darray = old_darray.squeeze('time')
发生这种情况:
IndexError: index 0 is out of bounds for axis 0 with size 0
当我尝试这个时:
new_darray = old_darray[:,0,:,:]
这也发生了:
IndexError: index 0 is out of bounds for axis 0 with size 0
您无法在 xarray 或 NumPy 中索引或挤出大小为 0 的维度。这需要将大小为 3 * 0 * 279 * 496 = 0
的空数组转换为大小为 3 * 279 * 496 = 415152
的充满数据的数组。新数据从何而来?