# mars.tensor.dstack¶

mars.tensor.dstack(tup)[source]

Stack tensors in sequence depth wise (along third axis).

This is equivalent to concatenation along the third axis after 2-D tensors of shape (M,N) have been reshaped to (M,N,1) and 1-D arrays of shape (N,) have been reshaped to (1,N,1). Rebuilds arrays divided by dsplit.

This function makes most sense for arrays with up to 3 dimensions. For instance, for pixel-data with a height (first axis), width (second axis), and r/g/b channels (third axis). The functions concatenate, stack and block provide more general stacking and concatenation operations.

Parameters

tup (sequence of tensors) – The tensors must have the same shape along all but the third axis. 1-D or 2-D arrays must have the same shape.

Returns

stacked – The array formed by stacking the given tensors, will be at least 3-D.

Return type

Tensor

`stack`

Join a sequence of tensors along a new axis.

`vstack`

Stack along first axis.

`hstack`

Stack along second axis.

`concatenate`

Join a sequence of arrays along an existing axis.

`dsplit`

Split tensor along third axis.

Examples

```>>> import mars.tensor as mt
```
```>>> a = mt.array((1,2,3))
>>> b = mt.array((2,3,4))
>>> mt.dstack((a,b)).execute()
array([[[1, 2],
[2, 3],
[3, 4]]])
```
```>>> a = mt.array([[1],[2],[3]])
>>> b = mt.array([[2],[3],[4]])
>>> mt.dstack((a,b)).execute()
array([[[1, 2]],
[[2, 3]],
[[3, 4]]])
```