xarray.Dataset.to_stacked_array¶
-
Dataset.
to_stacked_array
(new_dim, sample_dims, variable_dim='variable', name=None)[source]¶ Combine variables of differing dimensionality into a DataArray without broadcasting.
This method is similar to Dataset.to_array but does not broadcast the variables.
- Parameters
new_dim (hashable) – Name of the new stacked coordinate
sample_dims (sequence of hashable) – Dimensions that will not be stacked. Each array in the dataset must share these dimensions. For machine learning applications, these define the dimensions over which samples are drawn.
variable_dim (
str
, optional) – Name of the level in the stacked coordinate which corresponds to the variables.name (
str
, optional) – Name of the new data array.
- Returns
stacked (
DataArray
) – DataArray with the specified dimensions and data variables stacked together. The stacked coordinate is namednew_dim
and represented by a MultiIndex object with a level containing the data variable names. The name of this level is controlled using thevariable_dim
argument.
Examples
>>> data = xr.Dataset( ... data_vars={ ... "a": (("x", "y"), [[0, 1, 2], [3, 4, 5]]), ... "b": ("x", [6, 7]), ... }, ... coords={"y": ["u", "v", "w"]}, ... )
>>> data <xarray.Dataset> Dimensions: (x: 2, y: 3) Coordinates: * y (y) <U1 'u' 'v' 'w' Dimensions without coordinates: x Data variables: a (x, y) int64 0 1 2 3 4 5 b (x) int64 6 7
>>> data.to_stacked_array("z", sample_dims=["x"]) <xarray.DataArray 'a' (x: 2, z: 4)> array([[0, 1, 2, 6], [3, 4, 5, 7]]) Coordinates: * z (z) MultiIndex - variable (z) object 'a' 'a' 'a' 'b' - y (z) object 'u' 'v' 'w' nan Dimensions without coordinates: x