flopscope.numpy.dstack
fnp.dstack(tup)[flopscope source][numpy source]
Stack arrays in sequence depth wise (along third axis).
Adapted from NumPy docs np.dstack
Stack arrays depth-wise (along third axis). Cost: numel(output).
This is equivalent to concatenation along the third axis after 2-D arrays
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 arrays
The arrays must have the same shape along all but the third axis. 1-D or 2-D arrays must have the same shape.
Returns
- stacked:ndarray
The array formed by stacking the given arrays, will be at least 3-D.
See also
- we.flops.concatenate Join a sequence of arrays along an existing axis.
- we.flops.stack Join a sequence of arrays along a new axis.
- we.flops.block Assemble an nd-array from nested lists of blocks.
- we.flops.vstack Stack arrays in sequence vertically (row wise).
- we.flops.hstack Stack arrays in sequence horizontally (column wise).
- we.flops.column_stack Stack 1-D arrays as columns into a 2-D array.
- we.flops.dsplit Split array along third axis.
Examples
>>> import flopscope.numpy as fnp
>>> a = flops.array((1,2,3))
>>> b = flops.array((2,3,4))
>>> flops.dstack((a,b))
array([[[1, 2],
[2, 3],
[3, 4]]])>>> a = flops.array([[1],[2],[3]])
>>> b = flops.array([[2],[3],[4]])
>>> flops.dstack((a,b))
array([[[1, 2]],
[[2, 3]],
[[3, 4]]])