# [NumPy-Tickets] [NumPy] #1518: numpy.concat does not appear to work across broadcast axes

NumPy Trac numpy-tickets@scipy....
Thu Jun 24 03:48:00 CDT 2010

```#1518: numpy.concat does not appear to work across broadcast axes
--------------------+-------------------------------------------------------
Reporter:  eob     |       Owner:  somebody
Type:  defect  |      Status:  new
Priority:  normal  |   Milestone:  2.0.0
Component:  Other   |     Version:  1.4.0
Keywords:          |
--------------------+-------------------------------------------------------

Comment(by pv):

If you mean this,
{{{
>>> x = np.array([1,2,3,4])
>>> y = np.array([[1,2],[3,4],[5,6],[7,8]])
>>> np.concatenate((y, np.tile(x, (4,1))), axis=1)
array([[1, 2, 1, 2, 3, 4],
[3, 4, 1, 2, 3, 4],
[5, 6, 1, 2, 3, 4],
[7, 8, 1, 2, 3, 4]])
}}}
you can do it without copies:
{{{
"""Broadcast unit dimensions in `x` to match those in `ref` without
copies"""
strides = [0 if x.shape[j] == 1 else x.strides[j] for j in
range(x.ndim)]
shape = [ref.shape[j] if x.shape[j] == 1 else x.shape[j] for j in
range(x.ndim)]
from numpy.lib.stride_tricks import as_strided
return as_strided(x, shape=shape, strides=strides)

>>> x = np.array([1,2,3,4])
>>> y = np.array([[1,2],[3,4],[5,6],[7,8]])
>>> np.concatenate((y, broadcast_view(x[None,:], y)), axis=1)
array([[1, 2, 1, 2, 3, 4],
[3, 4, 1, 2, 3, 4],
[5, 6, 1, 2, 3, 4],
[7, 8, 1, 2, 3, 4]])
>>> broadcast_view(x[None,:], y).base.base.base is x
True
}}}

But yes, I guess `np.concatenate` should do this automatically.

--
Ticket URL: <http://projects.scipy.org/numpy/ticket/1518#comment:3>
NumPy <http://projects.scipy.org/numpy>
My example project
```