# [Solved] ValueError: all the input arrays must have same number of dimensions

Hello Guys, How are you all? Hope You all Are Fine. Today I get the following error ValueError: all the input arrays must have same number of dimensions in python. So Here I am Explain to you all the possible solutions here.

## How ValueError: all the input arrays must have same number of dimensions Error Occurs?

Today I get the following error ValueError: all the input arrays must have same number of dimensions in python.

## How To Solve ValueError: all the input arrays must have same number of dimensions Error ?

1. How To Solve ValueError: all the input arrays must have same number of dimensions Error ?

To Solve ValueError: all the input arrays must have same number of dimensions Error The reason why you get your error is because a “1 by n” matrix is different from an array of length n.

2. ValueError: all the input arrays must have same number of dimensions

To Solve ValueError: all the input arrays must have same number of dimensions Error The reason why you get your error is because a “1 by n” matrix is different from an array of length n.

## Solution 1

If I start with a 3×4 array, and concatenate a 3×1 array, with axis 1, I get a 3×5 array:

```In : x = np.arange(12).reshape(3,4)
In : np.concatenate([x,x[:,-1:]], axis=1)
Out:
array([[ 0,  1,  2,  3,  3],
[ 4,  5,  6,  7,  7],
[ 8,  9, 10, 11, 11]])
In : x.shape,x[:,-1:].shape
Out: ((3, 4), (3, 1))
```

Note that both inputs to concatenate have 2 dimensions.

Omit the `:`, and `x[:,-1]` is (3,) shape – it is 1d, and hence the error:

```In : np.concatenate([x,x[:,-1]], axis=1)
...
ValueError: all the input arrays must have same number of dimensions
```

The code for `np.append` is (in this case where axis is specified)

```return concatenate((arr, values), axis=axis)
```

So with a slight change of syntax `append` works. Instead of a list it takes 2 arguments. It imitates the list `append` is syntax, but should not be confused with that list method.

```In : np.append(x, x[:,-1:], axis=1)
Out:
array([[ 0,  1,  2,  3,  3],
[ 4,  5,  6,  7,  7],
[ 8,  9, 10, 11, 11]])
```

`np.hstack` first makes sure all inputs are `atleast_1d`, and then does concatenate:

```return np.concatenate([np.atleast_1d(a) for a in arrs], 1)
```

So it requires the same `x[:,-1:]` input. Essentially the same action.

`np.column_stack` also does a concatenate on axis 1. But first it passes 1d inputs through

```array(arr, copy=False, subok=True, ndmin=2).T
```

This is a general way of turning that (3,) array into a (3,1) array.

```In : np.array(x[:,-1], copy=False, subok=True, ndmin=2).T
Out:
array([[ 3],
[ 7],
])
In : np.column_stack([x,x[:,-1]])
Out:
array([[ 0,  1,  2,  3,  3],
[ 4,  5,  6,  7,  7],
[ 8,  9, 10, 11, 11]])
```

All these ‘stacks’ can be convenient, but in the long run, it’s important to understand dimensions and the base `np.concatenate`. Also know how to look up the code for functions like this. I use the `ipython` `??` magic a lot.

And in time tests, the `np.concatenate` is noticeably faster – with a small array like this the extra layers of function calls makes a big time difference.

## Solution 2

The reason why you get your error is because a “1 by n” matrix is different from an array of length n.

I recommend using `hstack()` and `vstack()` instead. Like this:

```import numpy as np
a = np.arange(32).reshape(4,8) # 4 rows 8 columns matrix.
b = a[:,-1:]                    # last column of that matrix.

result = np.hstack((a,b))       # stack them horizontally like this:
#array([[ 0,  1,  2,  3,  4,  5,  6,  7,  7],
#       [ 8,  9, 10, 11, 12, 13, 14, 15, 15],
#       [16, 17, 18, 19, 20, 21, 22, 23, 23],
#       [24, 25, 26, 27, 28, 29, 30, 31, 31]])
```

Notice the repeated “7, 15, 23, 31” column. Also, notice that I used `a[:,-1:]` instead of `a[:,-1]`. My version generates a column:

```array([,
,
,
])
```

Instead of a row `array([7,15,23,31])`

Edit: `append()` is much slower.

## Summery

It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you? Thank You.