3️⃣ 🎯 NumPy Array Access & Manipulation
Estimated reading: 3 minutes 292 views

NumPy Array Iterating – A Complete Guide (2025)

Master how to loop through NumPy arrays using efficient techniques like nditer(), ndenumerate(), and slicing. Learn with examples, FAQs, and best practices.


Introduction

NumPy is a powerful Python library for numerical computing, and array iteration is an essential operation when manipulating data. Although Python’s native loops can be used, NumPy offers faster and more memory-efficient ways to iterate over arrays.


Basic Iteration – 1D Array

import numpy as np

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

for x in arr:
    print(x)

Iterates element by element.


Iterating 2D Arrays

Row-wise Iteration

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

for row in arr:
    print(row)

Outputs each row as a 1D array.


Element-wise Iteration

for row in arr:
    for elem in row:
        print(elem)

Useful for nested processing.


Using np.nditer() – Efficient Way

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

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

nditer() is a powerful iterator supporting multi-dimensional traversal, memory layout control, and more.


Iterating with Indexes – np.ndenumerate()

for idx, x in np.ndenumerate(arr):
    print(f"Index: {idx}, Value: {x}")

Returns both index and value – handy for debugging or complex logic.


Iterating with Data Type Conversion

arr = np.array([1.1, 2.2, 3.3])

for x in np.nditer(arr, flags=['buffered'], op_dtypes=['int']):
    print(x)

Converts float to int on the fly during iteration.


Iterating Over Transposed Arrays

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

for x in np.nditer(arr.T):
    print(x)

Can iterate column-wise using arr.T.


Iterating with Step Sizes and Slicing

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

for x in arr[::2]:  # Step size = 2
    print(x)

Slicing simplifies iteration when only partial access is needed.


Summary

TechniqueUse Case
for x in arrSimple 1D/2D iteration
np.nditer()Efficient, fast, flexible iteration
np.ndenumerate()When index info is needed
SlicingSkipping elements or regions

NumPy iteration is not just looping—it’s about doing it right and efficiently.


FAQ – NumPy Iteration

Q1. Why use nditer() instead of normal loops?

A: nditer() is optimized for speed and memory usage, especially with large arrays.


Q2. Can I modify elements while iterating?

A: Yes, use the 'readwrite' flag in nditer():

for x in np.nditer(arr, op_flags=['readwrite']):
    x[...] = x * 2

Q3. What’s the difference between nditer and ndenumerate?

A:

  • nditer() gives values only
  • ndenumerate() gives index + value pairs

Q4. Is slicing faster than looping?

A: Yes, slicing is vectorized and much faster. Prefer slicing or NumPy functions over loops when possible.


Q5. Can I iterate over arrays of higher dimensions?

A: Absolutely. All techniques like nditer() and ndenumerate() work seamlessly with multi-dimensional arrays (3D, 4D, etc.).


Share Now :
Share

NumPy Array Iterating

Or Copy Link

CONTENTS
Scroll to Top