# General Loop in Python Question

Hi, I have no questions about the assignment, but I do have a question about embedded loops in Python.

Specifically, when we use [i, j] iterators in the loops, does Python automatically know that [i] refers to the row of the dataset and [j] refers to the columns? The reason I ask is because [i, j] are not defined anywhere in the code until they are defined as iterators of the loop.

Also, we use m, n variables with X.shape. Do the variables m & n refer to different values in the in the dataset or is this a way of differentiating m & n when weâ€™re iterating through [i, j] elements in the loops? Maybe Python is incapable of iterating through 2 loops within the same range (m).

Mathematically, I understand what weâ€™re programming but the embedded loops get pretty complex pretty fast.

No big deal, just want to understand the code clearly. Thanks.

Hello @Rod_Bennett,

Each numpy array has a certain number of dimensions. For example, if we convert any tabular dataset into an array, that will be a 2 dimensional array, and letâ€™s say we name that array as `data_array`. Another way of saying it is that `data_array` is an array of arrays.

When we do `data_array[i]`, it gives us the `i`-th element of the `data_array`. Since that element is also an array, `data_array[i]` gives us the `i`-th array. Note that it is the `i`-th row of array.

So when we do `data_array[i][j]`, it gives us the `i`-th element of `data_array`, which again is the `i`-th row, and then the `j`-th element of `data_array[i]`. Note that `data_array[i][j]` is equal to `data_array[i, j]`.

My response is not fully answering your questions, but just as starting. For the rest, I would strongly suggest you to come up with the ideas yourself by a series of experiment.

``````x = np.array([
[10, 11, 12],
[25, 26, 27],
])
``````

Note that my above representation clearly show that it is an array of 2 arrays. It is a 2 rows times 3 columns dataset. Try to do x[1][2], x[2, 1], â€¦ (the action of adding square brackets next to an array to recall the content of that array is called â€śindexingâ€ť) and see if you can index the exact element you want from that table. As for the shape, just check it with `x.shape` and see what comes out. Lastly, donâ€™t forget to change to some other x by like adding a few more rows or columns, and repeat all of the experiments and see if the outcomes always stick with your understanding.

For `x.shape` you might even need to hypothesize what it does unless you google for its exact use. However, I wonâ€™t be surprised if you can progressively get to the right answer after you try out x.shape with a few different shapes of x.

Most of the questions can actually be answered by experiments and it is literally a wonderful way to confirm understanding. If to a point you cannot find any exception in your understanding from experiments and you want to verify that ultimate understanding with some others, please feel free to post it as a statement here and hopefully someone can comment.

Cheers,
Raymond

1 Like

No, it does not.

2 Likes

Thank you, it makes total sense.