🔍 NumPy Indexing, Slicing & Iterating

Last Updated: 09 Nov 2025


In NumPy, indexing means selecting specific elements, and slicing means selecting a range (part) of elements.

🗣 Hinglish Tip: “Indexing = ek element lena, Slicing = ek se zyada ek range lena!”


Indexing in 1D Arrays

import numpy as np

arr = np.array([10, 20, 30, 40, 50])
print("Array:", arr)

print("First element:", arr[0])
print("Last element:", arr[-1])
print("Middle element:", arr[2])
print(arr[-2])      # 2nd last element

Indexing in 2D Arrays

You can access using row, column index.

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

print("Element at [0,0]:", arr[0, 0])
print("Element at [1,2]:", arr[1, 2])
print("First row:", arr[0])
print("Second column:", arr[:, 1])

🗣 Hinglish Tip:arr[row, column] likh ke access karte hain — bilkul matrix jaisa!


Slicing in 1D Arrays

import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
print(arr[1:4])     # From index 1 to 3
print(arr[:3])      # From start to index 2
print(arr[3:])      # From index 3 to end
print(arr[::2])     # Every 2nd element
print(arr[-4:-1])   # Slice from 2nd to last

Slicing in 2D Arrays

arr = np.array([[10,20,30,40],
                [50,60,70,80],
                [90,100,110,120]])

print(arr[0:2, 1:3])   # rows 0-1, cols 1-2
print(arr[:, 2])       # all rows, only 3rd column
print(arr[1, :])       # 2nd row, all columns

🧠 Pattern:arr[row_start:row_end, col_start:col_end]


Iterating over Arrays

  • 1D Array
arr = np.array([10, 20, 30])
for x in arr:
    print(x)
  • 2D Array
arr = np.array([[1,2,3], [4,5,6]])

for row in arr:
    print("Row:", row)

Use .flat to loop through all elements one by one (flattened form).

arr = np.array([[1,2,3], [4,5,6]])
for x in arr.flat:
    print(x)
  • Using np.nditer()
arr = np.array([[10,20],[30,40],[50,60]])

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

🗣 Hinglish Tip:“nditer() ka matlab hai ‘n-dimensional iterator’ — easy tarike se har element access karne ke liye.