Iterate Over Rows of a Numpy Array in Python

  1. Use a Nested for Loop to Iterate Over Rows of a Numpy Array in Python
  2. Use a for Loop and the flatten() Function to Iterate Over Rows of a Numpy Array in Python
  3. Use the apply_along_axis() Function to Iterate Over Rows of a Numpy Array in Python

Python mainly utilizes the NumPy library to allow the implementation of arrays in its code; these arrays can be n-dimensional. Iterating over the elements of an array is one of the few things a programmer may encounter while implementing arrays.

Operations on NumPy arrays
Operations on NumPy arrays

This tutorial demonstrates how to iterate over rows of a NumPy array in Python.

The concept of rows and columns does not exist in a one-dimensional array; therefore, we will discuss arrays with at least two dimensions. Most of the methods and implementations in this article would be carried out on a two-dimensional array.

Use a Nested for Loop to Iterate Over Rows of a Numpy Array in Python

For iterating the elements of a single row, we may be able to utilize the for loop alone. However, for iterating over multiple rows of a NumPy array, we need to nest the for loop.

The working is straightforward, and the code uses nested for loops to access and iterate over all the elements of an array row-wise.

The following code uses a nested for loop to iterate over rows of a NumPy array in Python.

import numpy as np
x = np.matrix([[21,22,23],
                [24,25,26],
                [27,28,29]])
for row in x:
  print (str(row))

The above code provides the following output:

[[21 22 23]]
[[24 25 26]]
[[27 28 29]]

Here, we used the print command to print every row. If more details are given, then any function can also be implemented over the rows of a NumPy array.

Use a for Loop and the flatten() Function to Iterate Over Rows of a Numpy Array in Python

Instead of nesting the for loop, we can take an alternative route, which uses the flatten() function to iterate over rows of a NumPy array in Python. The flatten() function can convert a two-dimensional array into a one-dimensional one, which makes it possible to get the result needed by applying the for loop just once in the program.

The following code uses a for loop and the flatten() function to iterate over rows of a NumPy array in Python.

import numpy as np
x = np.matrix([[21,22,23],
                [24,25,26],
                [27,28,29]])
for cell in x.flatten():
        print(cell, end=' ')

The above code provides the following output:

[[21 22 23 24 25 26 27 28 29]]

Use the apply_along_axis() Function to Iterate Over Rows of a Numpy Array in Python

The NumPy library provides the NumPy.apply_along_axis() function that can apply a function to the elements of an array along any axis specified by the programmer. The apply_along_axis() function has a simple syntax, which takes in the function that the programmer needs to implement, the axis specified, and the array on which the implementation needs to occur.

The following code uses the apply_along_axis() function to iterate over rows of a NumPy array in Python.

import numpy as np
x = np.matrix([[21,22,23],
                [24,25,26],
                [27,28,29]])
def myfunction(a):
    return a
print(np.apply_along_axis(myfunction, axis=1, arr=x))

The above code provides the following output:

[[21 22 23]
 [24 25 26]
 [27 28 29]]