get "1" for a one-dimensional numpy.array using a shape-like function
arrays, dimension, multidimensional-array, numpy, python
Solution
>>> a
array([1, 2, 3, 4])
>>> a.ndim
1
>>> b = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
>>> b.ndim
2
If you wanted a column vector, you can use the `.reshape` method - in fact, `.shape` is actually a settable property so numpy also lets you do this:
>>> a
array([1, 2, 3, 4])
>>> a.shape += (1,)
>>> a
array([[1],
[2],
[3],
[4]])
>>> a.shape
(4, 1)
>>> a.ndim
2
Problem
In a function, I give a Numpy array : It can be multi-dimentional but also one-dimentional So when I give a multi-dimentional array : ``` np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).shape >>> (3, 4) ``` and ``` np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).shape[1] >>> 4 ``` Fine. But when I ask the shape of ``` np.array([1,2,3,4]).shape >>> (4,) ``` and ``` np.array([1,2,3,4]).shape[1] >>> IndexError: tuple index out of range ``` Ooops, the tuple contain only one element... while I want `1` to indicate it is a one-dimentional array. Is there a way to get this ? I mean with a simple function or method, and without a discriminant test with `ndim` for exemple ? Thanks !