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 !
>>> 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