Im a newbie to Numpy and trying to understand the basic question of what is dimension,
I tried the following commands and trying to understand why the ndim for last 2 arrays are same?
>>> a= array([1,2,3])
>>> a.ndim
1
>>> a= array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> a.ndim
2
>>> a=arange(15).reshape(3,5)
>>> a.ndim
2
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
My understanding..
Case 1:
array([[1, 2, 3],
[4, 5, 6]])
2 elements are present in main lists, so ndim is-2
Case 2:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
3 elements are present in the main lists, do ndim is-3
The shape
of an array is a tuple of its dimensions. An array with one dimension has a shape of (n,). A two dimension array has a shape of (n,m) (like your case 2 and 3) and a three dimension array has a shape of (n,m,k) and so on.
Therefore, whilst the shape of your second and third example are different, the no. dimensions is two in both cases:
>>> a= np.array([[1,2,3],[4,5,6]])
>>> a.shape
(2, 3)
>>> b=np.arange(15).reshape(3,5)
>>> b.shape
(3, 5)
If you wanted to add another dimension to your examples you would have to do something like this:
a= np.array([[[1,2,3]],[[4,5,6]]])
or
np.arange(15).reshape(3,5,1)
You can keep adding dimensions in this way:
One dimension:
>>> a = np.zeros((2))
array([ 0., 0.])
>>> a.shape
(2,)
>>> a.ndim
1
Two dimensions:
>>> b = np.zeros((2,2))
array([[ 0., 0.],
[ 0., 0.]])
>>> b.shape
(2,2)
>>> b.ndim
2
Three dimensions:
>>> c = np.zeros((2,2,2))
array([[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]])
>>> c.shape
(2,2,2)
>>> c.ndim
3
Four dimensions:
>>> d = np.zeros((2,2,2,2))
array([[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]],
[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]]])
>>> d.shape
(2,2,2,2)
>>> d.ndim
4
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With