🔍 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.