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