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

matplotlib, numpy, python, scipy

Solution

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

Problem

I'm trying to break down a program line by line. `Y` is a matrix of data but I can't find any concrete data on what `.shape[0]` does exactly. ``` for i in range(Y.shape[0]): if Y[i] == -1: ``` This program uses numpy, scipy, matplotlib.pyplot, and cvxopt.

Original source