NumPy

Array Iteration

Iterating over arrays

This is an array iteration tutorial.

Array iteration refers to the process of accessing each element of an array one by one. In the context of NumPy, array iteration typically involves traversing through the elements of an array to perform certain operations, such as computation, manipulation, or analysis.

To iterate over arrays in NumPy efficiently, you can use various methods depending on your specific requirements. Within this tutorial, we cover these methods: loops, functions, and attributes.

  • Loops – Traditional Python loops like “for” or “while” can be used to iterate over arrays. However, this approach might not be the most efficient for large arrays.
  • Functions: NumPy provides functions like “np.nditer()” and “np.ndenumerate()” specifically designed for iterating over arrays efficiently. These functions offer better performance compared to standard Python loops.
  • Attributes: Some NumPy array attributes, such as “flat“, provide iterators that allow you to traverse through the elements of the array conveniently.

Iterating with loops

Standard Python loops allow iteration over NumPy arrays. However, this is not the most efficient method and should be avoided if possible, especially for large arrays.

Let’s look at an example with a 1D array.

import numpy as np

arr = np.array([1, 2, 3])

for element in arr:
    print(element)

# Output: 1
# Output: 2
# Output: 3

The following is an example of a multidimensional array.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

for element in arr:
    print(element)

# Output: [1 2 3]
# Output: [4 5 6]

We can also use specific parts with array indices.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

# Index at the print statement
for element in arr:
    print(element[2])

# Output: 3
# Output: 6
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

# Index at the array allocation
for element in arr[1]:
    print(element)

# Output: 4
# Output: 5
# Output: 6

Iterating with functions

There are two main NumPy functional methods for iteration, nditer and ndenumerate.

The nditer function provides an efficient way to iterate over all elements of an array. The ndenumerate function is similar to nditer, but it also provides the indices along with the values. Both methods yield better efficiency in comparison with traditional Python loops.

nditer

import numpy as np

arr = np.array([1, 2, 3])

for element in np.nditer(arr):
    print(element)

# Output: 1
# Output: 2
# Output: 3

ndenumerate

import numpy as np

arr = np.array([[1, 2], [3, 4]])

for index, value in np.ndenumerate(arr):
    print(index, value)

# Output: (0, 0) 1
# Output: (0, 1) 2
# Output: (1, 0) 3
# Output: (1, 1) 4

Iterating with attributes

The “flat” attribute returns an iterator that traverses the array in a 1-dimensional fashion.

import numpy as np

arr = np.array([[1, 2], [3, 4]])

for element in arr.flat:
    print(element)

# Output: 1
# Output: 2
# Output: 3
# Output: 4

This is an original array iteration educational material created by aicorr.com.

Next: Advanced Topics

by AICorr Team

We are proud to offer our extensive knowledge to you, for free. The AICorr Team puts a lot of effort in researching, testing, and writing the content within the platform (aicorr.com). We hope that you learn and progress forward.