لَآ إِلَـٰهَ إِلَّا هُوَ
LA ILAHA ILLA HU
Allah, Your Lord There Is No Deity Except Him.

# Python Data Science NumPy Array Iterating

Iterating Arrays: Iterating means going through elements one by one.

As we deal with multi-dimensional arrays in numpy, we can do this using basic for loop of python.

If we iterate on a 1-D array it will go through each element one by one.

Example 1: Iterate on the elements of the following 1-D array.

Code

the out put will be

1
2
3
4

Iterating 2-D Arrays

In a 2-D array it will go through all the rows.

Example 2: Iterate on the elements of the following 2-D array.

Code

the output will be

[1 2 3 4]
[5 6 7 8]

Note: If we iterate on a n-D array it will go through n-1th dimension one by one.

To return the actual values, the scalars, we have to iterate the arrays in each dimension.

Example 3: Iterate on each scalar element of the 2-D array.

Code

the output will be

11
12
13
14
15
16

Iterating 3-D Arrays

In a 3-D array it will go through all the 2-D arrays.

Example 4: Iterate on the elements of the following 3-D array.

Code

the output will be

```            [[11 12 13]
[14 15 16]]
[[17 18 19]
[20 21 22]]

```

To return the actual values, the scalars, we have to iterate the arrays in each dimension.

Example 5: Iterate down to the scalars.

Code

the output will be

```    11
12
13
14
15
16
17
18
19
20
21
22
```

Iterating Arrays Using nditer() The function nditer() is a helping function that can be used from very basic to very advanced iterations.
It solves some basic issues which we face in iteration, lets go through it with examples.

Iterating on Each Scalar Element

In basic for loops, iterating through each scalar of an array we need to use n for loops which can be difficult to write for arrays with very high dimensionality.

Example 6: Iterate through the following 3-D array.

Code

the output will be

```11
12
13
14
15
16
17
18
```

Iterating Array With Different Data Types

We can use op_dtypes argument and pass it the expected datatype to change the datatype of elements while iterating.

NumPy does not change the data type of the element in-place (where the element is in array) so it needs some other space to perform this action, that extra space is called buffer and in order to enable it in nditer() we pass flags=['buffered'].

Example 7: Iterate through the array as a string.

Code

the output will be

```b'11'
b'12'
b'13'
```

Iterating With Different Step Size

We can use filtering and followed by iteration.

Example 8: Iterate through every scalar element of the 2D array skipping 1 element.

Code

the output will be

11
13
15
17

Enumerated Iteration Using ndenumerate()

Enumeration means mentioning sequence number of somethings one by one.

Sometimes we require corresponding index of the element while iterating, the ndenumerate() method can be used for those usecases.

Example 9: Enumerate on following 1D arrays elements.

Code

the output will be

(0,) 11
(1,) 12
(2,) 13

Example 10: Enumerate on following 2D array's elements.

Code

the output will be

(0, 0) 11
(0, 1) 12
(0, 2) 13
(0, 3) 14
(1, 0) 15
(1, 1) 16
(1, 2) 17
(1, 3) 18