check if numpy array is multidimensional or not


I want to check if a numpy array is multidimensional or not?

V = [[ -7.94627203e+01  -1.81562235e+02  -3.05418070e+02  -2.38451033e+02][  9.43740653e+01   1.69312771e+02   1.68545575e+01  -1.44450299e+02][  5.61599000e+00   8.76135909e+01   1.18959245e+02  -1.44049237e+02]]

How can I do that in numpy?

Asked By: sam



Use the .ndim property of the ndarray:

>>> a = np.array([[ -7.94627203e+01,  -1.81562235e+02,  -3.05418070e+02,  -2.38451033e+02],[  9.43740653e+01,   1.69312771e+02,   1.68545575e+01,  -1.44450299e+02],[  5.61599000e+00,   8.76135909e+01,   1.18959245e+02,  -1.44049237e+02]])
>>> a.ndim
Answered By: Ashwini Chaudhary

In some cases, you should also add np.squeeze() to make sure there are no "empty" dimensions

>>> a = np.array([[1,2,3]])
>>> a.ndim
>>> a = np.squeeze(a)
>>> a .ndim
Answered By: Baragorn

You can use .shape property too, which gives you a tuple containing the length of each dimension. Therefore, to get the dimension using .shape you could aswell call len() on the resulting tuple:

import numpy as np

a = np.array([1,2,3])
b = np.array([[1,2,3]])
c = np.array([[1,2,3],[2,4,6],[3,6,9]])

print("a.shape: {}; len(a.shape): {}".format(a.shape, len(a.shape)))

print("b.shape: {}; len(b.shape): {}".format(b.shape, len(b.shape)))

print("c.shape: {}; len(c.shape): {}".format(c.shape, len(c.shape)))


a=[1 2 3]
a.shape: (3,); len(a.shape): 1
b=[[1 2 3]]
b.shape: (1, 3); len(b.shape): 2
[[1 2 3]
 [2 4 6]
 [3 6 9]]
c.shape: (3, 3); len(c.shape): 2
Answered By: mikyll98
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.