numpy array concatenate: “ValueError: all the input arrays must have same number of dimensions”

To use `np.concatenate`, we need to extend the second array to `2D` and then concatenate along `axis=1` –

```np.concatenate((a,b[:,None]),axis=1)

```

Alternatively, we can use `np.column_stack` that takes care of it –

```np.column_stack((a,b))

```

Sample run –

```In [84]: a
Out[84]:
array([[54, 30, 55, 12],
[64, 94, 50, 72],
[67, 31, 56, 43],
[26, 58, 35, 14],
[97, 76, 84, 52]])

In [85]: b
Out[85]: array([56, 70, 43, 19, 16])

In [86]: np.concatenate((a,b[:,None]),axis=1)
Out[86]:
array([[54, 30, 55, 12, 56],
[64, 94, 50, 72, 70],
[67, 31, 56, 43, 43],
[26, 58, 35, 14, 19],
[97, 76, 84, 52, 16]])

```

If `b` is such that its a `1D` array of `dtype=object` with a shape of `(1,)`, most probably all of the data is contained in the only element in it, we need to flatten it out before concatenating. For that purpose, we can use `np.concatenate` on it too. Here’s a sample run to make the point clear –

```In [118]: a
Out[118]:
array([[54, 30, 55, 12],
[64, 94, 50, 72],
[67, 31, 56, 43],
[26, 58, 35, 14],
[97, 76, 84, 52]])

In [119]: b
Out[119]: array([array([30, 41, 76, 13, 69])], dtype=object)

In [120]: b.shape
Out[120]: (1,)

In [121]: np.concatenate((a,np.concatenate(b)[:,None]),axis=1)
Out[121]:
array([[54, 30, 55, 12, 30],
[64, 94, 50, 72, 41],
[67, 31, 56, 43, 76],
[26, 58, 35, 14, 13],
[97, 76, 84, 52, 69]])
```