# python – What does .shape[] do in for i in range(Y.shape[0])?

## python – What does .shape[] do in for i in range(Y.shape[0])?

The `shape` attribute for numpy arrays returns the dimensions of the array. If `Y` has `n` rows and `m` columns, then `Y.shape` is `(n,m)`. So `Y.shape[0]` is `n`.

``````In [46]: Y = np.arange(12).reshape(3,4)

In [47]: Y
Out[47]:
array([[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]])

In [48]: Y.shape
Out[48]: (3, 4)

In [49]: Y.shape[0]
Out[49]: 3
``````

shape is a tuple that gives dimensions of the array..

``````>>> c = arange(20).reshape(5,4)
>>> c
array([[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19]])

c.shape[0]
5
``````

Gives the number of rows

``````c.shape[1]
4
``````

Gives number of columns

#### python – What does .shape[] do in for i in range(Y.shape[0])?

`shape` is a tuple that gives you an indication of the number of dimensions in the array. So in your case, since the index value of `Y.shape[0]` is 0, your are working along the first dimension of your array.

`````` An array has a shape given by the number of elements along each axis:
>>> a = floor(10*random.random((3,4)))

>>> a
array([[ 7.,  5.,  9.,  3.],
[ 7.,  2.,  7.,  8.],
[ 6.,  8.,  3.,  2.]])

>>> a.shape
(3, 4)
``````

and http://www.scipy.org/Numpy_Example_List#shape has some more
examples.