# xarray.Dataset.to_stacked_array

#### Dataset.to_stacked_array(new_dim, sample_dims, variable_dim='variable', name=None)[[source]](https://github.com/pydata/xarray/blob/main/xarray/core/dataset.py#L5421-L5542)

Combine variables of differing dimensionality into a DataArray
without broadcasting.

This method is similar to Dataset.to_dataarray but does not broadcast the
variables.

* **Parameters:**
  * **new_dim** ([hashable](../user-guide/terminology.html.md#term-name)) – Name of the new stacked coordinate
  * **sample_dims** (`Collection` of `hashables`) – List of 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** ([hashable](../user-guide/terminology.html.md#term-name), *default*: `"variable"`) – Name of the level in the stacked coordinate which corresponds to
    the variables.
  * **name** ([hashable](../user-guide/terminology.html.md#term-name), *optional*) – Name of the new data array.
* **Returns:**
  **stacked** ([`DataArray`](xarray.DataArray.html.md#xarray.DataArray)) – DataArray with the specified dimensions and data variables
  stacked together. The stacked coordinate is named `new_dim`
  and represented by a MultiIndex object with a level containing the
  data variable names. The name of this level is controlled using
  the `variable_dim` argument.

#### SEE ALSO
[`Dataset.to_dataarray`](xarray.Dataset.to_dataarray.html.md#xarray.Dataset.to_dataarray), [`Dataset.stack`](xarray.Dataset.stack.html.md#xarray.Dataset.stack), [`DataArray.to_unstacked_dataset`](xarray.DataArray.to_unstacked_dataset.html.md#xarray.DataArray.to_unstacked_dataset)

### Examples

<div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesShowIframe('9e6226ce-8e62-4798-af21-f152f11fec6b','8bf77212-923e-4844-a08f-b449cb539e75','1cd6a170-b147-4532-9c25-baea6cf544ee','../lite/tree/../notebooks/index.html?path=4f5a6d12_34a5_457b_8177_54d22938a213.ipynb','None')">Try it in your browser!</button></div>
```pycon
>>> data = xr.Dataset(
...     data_vars={
...         "a": (("x", "y"), [[0, 1, 2], [3, 4, 5]]),
...         "b": ("x", [6, 7]),
...     },
...     coords={"y": ["u", "v", "w"]},
... )
```

```pycon
>>> data
<xarray.Dataset> Size: 76B
Dimensions:  (x: 2, y: 3)
Coordinates:
  * y        (y) <U1 12B 'u' 'v' 'w'
Dimensions without coordinates: x
Data variables:
    a        (x, y) int64 48B 0 1 2 3 4 5
    b        (x) int64 16B 6 7
```

```pycon
>>> data.to_stacked_array("z", sample_dims=["x"])
<xarray.DataArray 'a' (x: 2, z: 4)> Size: 64B
array([[0, 1, 2, 6],
       [3, 4, 5, 7]])
Coordinates:
  * z         (z) object 32B MultiIndex
  * variable  (z) <U1 16B 'a' 'a' 'a' 'b'
  * y         (z) object 32B 'u' 'v' 'w' nan
Dimensions without coordinates: x
```

<div id="1cd6a170-b147-4532-9c25-baea6cf544ee" class="try_examples_outer_iframe  hidden"><div class="try_examples_button_container"><button class="try_examples_button" onclick="window.tryExamplesHideIframe('9e6226ce-8e62-4798-af21-f152f11fec6b','1cd6a170-b147-4532-9c25-baea6cf544ee')">Go Back</button><button class="try_examples_button" onclick="window.openInNewTab('9e6226ce-8e62-4798-af21-f152f11fec6b','1cd6a170-b147-4532-9c25-baea6cf544ee')">Open In Tab</button></div><div id="8bf77212-923e-4844-a08f-b449cb539e75" class="jupyterlite_sphinx_iframe_container"></div></div><script>document.addEventListener("DOMContentLoaded", function() {window.loadTryExamplesConfig("../try_examples.json");});</script>
