分配长度为一的新维度
assign new dimension of length one
我有一个 da.dims==()
的 DataArray。我可以分配一个坐标da.assign_coords(foo=42)
。我想添加一个长度为 1 的相应维度,这样 da.dims==("foo",)
和相应的坐标将是 foo=[42]
。我无法使用 assign_coords(foo=[42])
,因为这会导致错误消息 cannot add coordinates with new dimensions to a DataArray
.
如何将长度为 1 的新维度分配给 DataArray?我可以做类似 DataArray(da.values.reshape([1]), dims="foo", coords={"foo": [42]})
的事情,但我想知道是否有一种方法不需要复制整个对象。
您可以使用 xarray.concat
来实现:
da = xarray.DataArray(0, coords={"x": 42})
xarray.concat((da,), dim="x")
我有一个 da.dims==()
的 DataArray。我可以分配一个坐标da.assign_coords(foo=42)
。我想添加一个长度为 1 的相应维度,这样 da.dims==("foo",)
和相应的坐标将是 foo=[42]
。我无法使用 assign_coords(foo=[42])
,因为这会导致错误消息 cannot add coordinates with new dimensions to a DataArray
.
如何将长度为 1 的新维度分配给 DataArray?我可以做类似 DataArray(da.values.reshape([1]), dims="foo", coords={"foo": [42]})
的事情,但我想知道是否有一种方法不需要复制整个对象。
您可以使用 xarray.concat
来实现:
da = xarray.DataArray(0, coords={"x": 42})
xarray.concat((da,), dim="x")