 # Why np.ndim returns 3 for all arrays having dimensions greater than or equals to 3?

here the dimension of arr should be 5 but it is returning 3…can anyone explain me why this is happening? `arr5.ndim` returns the number of dimensions in arr5 which is 3.
ndim documentation

If you want to print number of elements in each dimensions, you can try:
`arr5.shape`

but how arr5 has 3 dimensions instead of 5?

Help me understand, why you think it is 5.

arr5.shape will print: (4, 2, 4), which is a 3-tuple hence the dimension is 3.

dimension 1 has 4 elements. (Each of which is a 2-d array of size 2x4)
Now for each of these 2x4 arrays, 2 represents the dimension 2(number of rows) and 4(number of columns) represent dimension 3.

got it…so what i can do if i want `np.ndim` to print 5 as result?

Create a 5 dim array For e.g. just do something like.

arr = np.ones((1, 1, 1, 1, 1))
arr.ndim

Apart from this do a small exercise. Try this:

``````print(np.ones((1)) )
print(np.ones((1, 1)) )
print(np.ones((1, 1, 1)) )
``````

Compare the output along with the number of square brackets in each of the outputs. Also check ‘shape’ and ‘ndim’ for each of these.
Hope it helps.